Skip to content

Commit

Permalink
chore: Remove init() (#35)
Browse files Browse the repository at this point in the history
Remove init()
  • Loading branch information
dbolson authored Mar 19, 2024
1 parent f33ebb9 commit a0b43c3
Showing 1 changed file with 35 additions and 34 deletions.
69 changes: 35 additions & 34 deletions cmd/root.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,70 +13,71 @@ import (
"ld-cli/cmd/projects"
)

var rootCmd = &cobra.Command{
Use: "ldcli",
Short: "LaunchDarkly CLI",
Long: "LaunchDarkly CLI to control your feature flags",
Version: "0.0.1", // TODO: set this based on release or use `cmd.SetVersionTemplate(s string)`
func newRootCommand() *cobra.Command {
cmd := &cobra.Command{
Use: "ldcli",
Short: "LaunchDarkly CLI",
Long: "LaunchDarkly CLI to control your feature flags",
Version: "0.0.1", // TODO: set this based on release or use `cmd.SetVersionTemplate(s string)`

// Handle errors differently based on type.
// We don't want to show the usage if the user has the right structure but invalid data such as
// the wrong key.
SilenceUsage: true,
SilenceErrors: true,
}

func Execute() {
err := rootCmd.Execute()
if err != nil {
switch {
case errors.Is(err, errs.ErrForbidden),
errors.Is(err, errs.ErrInvalidBaseURI),
errors.Is(err, errs.ErrUnauthorized):
fmt.Fprintln(os.Stderr, err.Error())
default:
fmt.Println(rootCmd.ErrPrefix(), err.Error())
fmt.Println(rootCmd.UsageString())
}
// Handle errors differently based on type.
// We don't want to show the usage if the user has the right structure but invalid data such as
// the wrong key.
SilenceUsage: true,
SilenceErrors: true,
}
}

func init() {
var (
accessToken string
baseURI string
)

rootCmd.PersistentFlags().StringVarP(
cmd.PersistentFlags().StringVarP(
&accessToken,
"accessToken",
"t",
"",
"LaunchDarkly personal access token",
)
err := rootCmd.MarkPersistentFlagRequired("accessToken")
err := cmd.MarkPersistentFlagRequired("accessToken")
if err != nil {
panic(err)
}
err = viper.BindPFlag("accessToken", rootCmd.PersistentFlags().Lookup("accessToken"))
err = viper.BindPFlag("accessToken", cmd.PersistentFlags().Lookup("accessToken"))
if err != nil {
panic(err)
}

rootCmd.PersistentFlags().StringVarP(
cmd.PersistentFlags().StringVarP(
&baseURI,
"baseUri",
"u",
"https://app.launchdarkly.com",
"LaunchDarkly base URI",
)
err = viper.BindPFlag("baseUri", rootCmd.PersistentFlags().Lookup("baseUri"))
err = viper.BindPFlag("baseUri", cmd.PersistentFlags().Lookup("baseUri"))
if err != nil {
panic(err)
}

rootCmd.SetErrPrefix("")
cmd.AddCommand(projects.NewProjectsCmd())
cmd.AddCommand(setupCmd)

rootCmd.AddCommand(projects.NewProjectsCmd())
rootCmd.AddCommand(setupCmd)
return cmd
}

func Execute() {
rootCmd := newRootCommand()
err := rootCmd.Execute()
if err != nil {
switch {
case errors.Is(err, errs.ErrForbidden),
errors.Is(err, errs.ErrInvalidBaseURI),
errors.Is(err, errs.ErrUnauthorized):
fmt.Fprintln(os.Stderr, err.Error())
default:
fmt.Println(err.Error())
fmt.Println(rootCmd.UsageString())
}
}
}

0 comments on commit a0b43c3

Please sign in to comment.