Skip to content

Commit c37f859

Browse files
committed
extract new function NewStringFlag()
1 parent 3641846 commit c37f859

File tree

3 files changed

+23
-46
lines changed

3 files changed

+23
-46
lines changed

cmd/cli/flags/flags.go

+15
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,12 @@
11
package flags
22

3+
import (
4+
"log"
5+
6+
"github.com/spf13/cobra"
7+
"github.com/spf13/viper"
8+
)
9+
310
// Root-level persistent flags
411
const (
512
Config = "config"
@@ -18,3 +25,11 @@ const (
1825
OrgAlternate = "org-alternate"
1926
TfcTokenAlternate = "tfc-token-alternate"
2027
)
28+
29+
func NewStringFlag(command *cobra.Command, name, value, usage string) {
30+
var s string
31+
command.PersistentFlags().StringVar(&s, name, value, usage)
32+
if err := viper.BindPFlag(name, command.PersistentFlags().Lookup(name)); err != nil {
33+
log.Fatalln("Error: unable to bind flag:", err)
34+
}
35+
}

cmd/cli/multiregion/multiregion.go

+6-35
Original file line numberDiff line numberDiff line change
@@ -29,41 +29,12 @@ func SetupMultiregionCmd(parentCommand *cobra.Command) {
2929
InitSetupCmd(multiregionCmd)
3030
InitStatusCmd(multiregionCmd)
3131

32-
var domainName string
33-
multiregionCmd.PersistentFlags().StringVar(&domainName, flags.DomainName, "", "Domain name")
34-
if err := viper.BindPFlag(flags.DomainName, multiregionCmd.PersistentFlags().Lookup(flags.DomainName)); err != nil {
35-
outputFlagError(multiregionCmd, err)
36-
}
37-
38-
var env string
39-
multiregionCmd.PersistentFlags().StringVar(&env, flags.Env, envProd, "Execution environment")
40-
if err := viper.BindPFlag(flags.Env, multiregionCmd.PersistentFlags().Lookup(flags.Env)); err != nil {
41-
outputFlagError(multiregionCmd, err)
42-
}
43-
44-
var region2 string
45-
multiregionCmd.PersistentFlags().StringVar(&region2, flags.Region2, "", "Secondary AWS region")
46-
if err := viper.BindPFlag(flags.Region2, multiregionCmd.PersistentFlags().Lookup(flags.Region2)); err != nil {
47-
outputFlagError(multiregionCmd, err)
48-
}
49-
50-
var tfcToken string
51-
multiregionCmd.PersistentFlags().StringVar(&tfcToken, flags.TfcToken, "", "Token for Terraform Cloud authentication")
52-
if err := viper.BindPFlag(flags.TfcToken, multiregionCmd.PersistentFlags().Lookup(flags.TfcToken)); err != nil {
53-
outputFlagError(multiregionCmd, err)
54-
}
55-
56-
var orgAlt string
57-
multiregionCmd.PersistentFlags().StringVar(&orgAlt, flags.OrgAlternate, "", "Alternate Terraform Cloud organization")
58-
if err := viper.BindPFlag(flags.OrgAlternate, multiregionCmd.PersistentFlags().Lookup(flags.OrgAlternate)); err != nil {
59-
outputFlagError(multiregionCmd, err)
60-
}
61-
62-
var tfcTokenAlt string
63-
multiregionCmd.PersistentFlags().StringVar(&tfcTokenAlt, flags.TfcTokenAlternate, "", "Alternate token for Terraform Cloud")
64-
if err := viper.BindPFlag(flags.TfcTokenAlternate, multiregionCmd.PersistentFlags().Lookup(flags.TfcTokenAlternate)); err != nil {
65-
outputFlagError(multiregionCmd, err)
66-
}
32+
flags.NewStringFlag(multiregionCmd, flags.DomainName, "", "Domain name")
33+
flags.NewStringFlag(multiregionCmd, flags.Env, envProd, "Execution environment")
34+
flags.NewStringFlag(multiregionCmd, flags.Region2, "", "Secondary AWS region")
35+
flags.NewStringFlag(multiregionCmd, flags.TfcToken, "", "Token for Terraform Cloud authentication")
36+
flags.NewStringFlag(multiregionCmd, flags.OrgAlternate, "", "Alternate Terraform Cloud organization")
37+
flags.NewStringFlag(multiregionCmd, flags.TfcTokenAlternate, "", "Alternate token for Terraform Cloud")
6738
}
6839

6940
func outputFlagError(cmd *cobra.Command, err error) {

cmd/cli/root.go

+2-11
Original file line numberDiff line numberDiff line change
@@ -31,17 +31,8 @@ in a second AWS region, and to initiate a secondary region failover action.`,
3131

3232
rootCmd.PersistentFlags().StringVar(&configFile, flags.Config, "", "Config file")
3333

34-
var org string
35-
rootCmd.PersistentFlags().StringVar(&org, flags.Org, "", requiredPrefix+"Terraform Cloud organization")
36-
if err := viper.BindPFlag(flags.Org, rootCmd.PersistentFlags().Lookup(flags.Org)); err != nil {
37-
log.Fatalln("Error: unable to bind flag:", err)
38-
}
39-
40-
var idp string
41-
rootCmd.PersistentFlags().StringVar(&idp, flags.Idp, "", requiredPrefix+"IDP key (short name)")
42-
if err := viper.BindPFlag(flags.Idp, rootCmd.PersistentFlags().Lookup(flags.Idp)); err != nil {
43-
log.Fatalln("Error: unable to bind flag:", err)
44-
}
34+
flags.NewStringFlag(rootCmd, flags.Org, "", requiredPrefix+"Terraform Cloud organization")
35+
flags.NewStringFlag(rootCmd, flags.Idp, "", requiredPrefix+"IDP key (short name)")
4536

4637
var readOnly bool
4738
rootCmd.PersistentFlags().BoolVarP(&readOnly, flags.ReadOnlyMode, "r", false,

0 commit comments

Comments
 (0)