add flag to print only allocated ip for vpn use case
This commit is contained in:
parent
43965df437
commit
059283aca1
1 changed files with 16 additions and 7 deletions
23
cli/main.go
23
cli/main.go
|
|
@ -11,8 +11,9 @@ import (
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
useCaseFlagName = "use-case"
|
useCaseFlagName = "use-case"
|
||||||
repoRootFlagName = "repo-root"
|
repoRootFlagName = "repo-root"
|
||||||
|
printResultOnlyFlagName = "result-only"
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
|
|
@ -28,17 +29,22 @@ func main() {
|
||||||
|
|
||||||
func run() error {
|
func run() error {
|
||||||
useCase := flag.String(useCaseFlagName, "", fmt.Sprintf("Use case to run. Available use cases are: %+v", validUseCases))
|
useCase := flag.String(useCaseFlagName, "", fmt.Sprintf("Use case to run. Available use cases are: %+v", validUseCases))
|
||||||
|
printResultOnly := flag.Bool(printResultOnlyFlagName, false, "Whether or not to print only the result (allocated ip) or print full command logging")
|
||||||
// repoRootParam := flag.String(repoRootFlagName, "", fmt.Sprintf("Path to the root of the infra repository."))
|
// repoRootParam := flag.String(repoRootFlagName, "", fmt.Sprintf("Path to the root of the infra repository."))
|
||||||
|
|
||||||
// VPN flags
|
// VPN flags
|
||||||
vpnClientName := flag.String(vpnClientNameFlagName, "", fmt.Sprintf("Friendly VPN user name."))
|
vpnClientName := flag.String(vpnClientNameFlagName, "", fmt.Sprintf("Friendly VPN user name."))
|
||||||
vpnClientPubKey := flag.String(vpnClientPubKeyFlagName, "", fmt.Sprintf("VPN client public key."))
|
vpnClientPubKey := flag.String(vpnClientPubKeyFlagName, "", fmt.Sprintf("VPN client public key."))
|
||||||
|
|
||||||
flag.Set("logtostderr", "true")
|
// Flag definitions above!
|
||||||
flag.Set("stderrthreshold", "WARNING")
|
|
||||||
flag.Set("v", "2")
|
|
||||||
flag.Parse()
|
flag.Parse()
|
||||||
|
|
||||||
|
if !*printResultOnly {
|
||||||
|
flag.Set("logtostderr", "true")
|
||||||
|
flag.Set("stderrthreshold", "WARNING")
|
||||||
|
flag.Set("v", "2")
|
||||||
|
}
|
||||||
|
|
||||||
// if *repoRootParam == "" {
|
// if *repoRootParam == "" {
|
||||||
// return fmt.Errorf("'-%s' flag must not be empty", repoRootFlagName)
|
// return fmt.Errorf("'-%s' flag must not be empty", repoRootFlagName)
|
||||||
// }
|
// }
|
||||||
|
|
@ -65,12 +71,12 @@ func run() error {
|
||||||
switch *useCase {
|
switch *useCase {
|
||||||
case vpnUseCaseFlagName:
|
case vpnUseCaseFlagName:
|
||||||
// get last used ip and increment
|
// get last used ip and increment
|
||||||
lastIP, err := getAndUpdateIP(gitFs, vpnLastIPConfFileRelative)
|
ip, err := getAndUpdateIP(gitFs, vpnLastIPConfFileRelative)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return errors.Wrapf(err, "failed to get valid last ip from file %s", vpnLastIPConfFileRelative)
|
return errors.Wrapf(err, "failed to get valid last ip from file %s", vpnLastIPConfFileRelative)
|
||||||
}
|
}
|
||||||
// insert new vpn client config
|
// insert new vpn client config
|
||||||
err = addVPNClient(gitFs, *vpnClientName, *vpnClientPubKey, vpnClientsConfFileRelative, lastIP)
|
err = addVPNClient(gitFs, *vpnClientName, *vpnClientPubKey, vpnClientsConfFileRelative, ip)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return errors.Wrapf(err, "failed to add vpn client")
|
return errors.Wrapf(err, "failed to add vpn client")
|
||||||
}
|
}
|
||||||
|
|
@ -78,6 +84,9 @@ func run() error {
|
||||||
if _, err = worktree.Commit("Added new VPN client config", &git.CommitOptions{All: true, Author: &object.Signature{Name: "Webhook Handler Bot"}}); err != nil {
|
if _, err = worktree.Commit("Added new VPN client config", &git.CommitOptions{All: true, Author: &object.Signature{Name: "Webhook Handler Bot"}}); err != nil {
|
||||||
return errors.Wrapf(err, "failed to commit")
|
return errors.Wrapf(err, "failed to commit")
|
||||||
}
|
}
|
||||||
|
if *printResultOnly {
|
||||||
|
println(ip)
|
||||||
|
}
|
||||||
default:
|
default:
|
||||||
err = errors.New(fmt.Sprintf("unsupported use case: %s", *useCase))
|
err = errors.New(fmt.Sprintf("unsupported use case: %s", *useCase))
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue