From 375e155f9c53c4654de45b6ebb05b467b38e3739 Mon Sep 17 00:00:00 2001 From: Denis Arh Date: Wed, 3 Apr 2019 23:14:20 +0200 Subject: [PATCH] Refactor CLI commands exit() helper --- system/cli/cli.go | 10 ++++++++++ system/cli/external-auth.go | 18 ++++-------------- system/cli/settings.go | 23 ++++++----------------- 3 files changed, 20 insertions(+), 31 deletions(-) diff --git a/system/cli/cli.go b/system/cli/cli.go index e031c2632..516b34677 100644 --- a/system/cli/cli.go +++ b/system/cli/cli.go @@ -3,6 +3,7 @@ package cli import ( "context" "fmt" + "os" "github.com/spf13/cobra" @@ -83,3 +84,12 @@ func Init(ctx context.Context) { fmt.Println(err) } } + +func exit(cmd *cobra.Command, err error) { + if err != nil { + cmd.Printf("Error: %v\n", err) + os.Exit(1) + } else { + os.Exit(0) + } +} diff --git a/system/cli/external-auth.go b/system/cli/external-auth.go index d2a034002..9dce40f5b 100644 --- a/system/cli/external-auth.go +++ b/system/cli/external-auth.go @@ -2,7 +2,6 @@ package cli import ( "context" - "os" "github.com/spf13/cobra" @@ -12,15 +11,6 @@ import ( // Will perform OpenID connect auto-configuration func ExternalAuth(ctx context.Context, rootCmd *cobra.Command, settingsService settings.Service) { - exit := func(err error) { - if err != nil { - rootCmd.Printf("Error: %v\n", err) - os.Exit(1) - } else { - os.Exit(0) - } - } - autoDiscover := &cobra.Command{ Use: "auto-discovery [name] [url]", Short: "Auto discovers new OIDC client", @@ -29,13 +19,13 @@ func ExternalAuth(ctx context.Context, rootCmd *cobra.Command, settingsService s var name, url = args[0], args[1] if eas, err := external.ExternalAuthSettings(settingsService); err != nil { - exit(err) + exit(cmd, err) } else if eap, err := external.RegisterNewOpenIdClient(ctx, eas, name, url); err != nil { - exit(err) + exit(cmd, err) } else if vv, err := eap.MakeValueSet("openid-connect." + name); err != nil { - exit(err) + exit(cmd, err) } else if err := settingsService.BulkSet(vv); err != nil { - exit(err) + exit(cmd, err) } }, } diff --git a/system/cli/settings.go b/system/cli/settings.go index 661d6c426..f2e9ec40a 100644 --- a/system/cli/settings.go +++ b/system/cli/settings.go @@ -1,23 +1,12 @@ package cli import ( - "os" - "github.com/spf13/cobra" "github.com/crusttech/crust/internal/settings" ) func Settings(rootCmd *cobra.Command, service settings.Service) { - exit := func(err error) { - if err != nil { - rootCmd.Printf("Error: %v\n", err) - os.Exit(1) - } else { - os.Exit(0) - } - } - settingsCmd := &cobra.Command{ Use: "settings", Short: "Settings management", @@ -29,7 +18,7 @@ func Settings(rootCmd *cobra.Command, service settings.Service) { Run: func(cmd *cobra.Command, args []string) { prefix := cmd.Flags().Lookup("prefix").Value.String() if kv, err := service.FindByPrefix(prefix); err != nil { - exit(err) + exit(cmd, err) } else { for _, v := range kv { cmd.Printf("%s\t%v\n", v.Name, v.Value) @@ -47,11 +36,11 @@ func Settings(rootCmd *cobra.Command, service settings.Service) { Args: cobra.ExactArgs(1), Run: func(cmd *cobra.Command, args []string) { if v, err := service.Get(args[0], 0); err != nil { - exit(err) + exit(cmd, err) } else if v != nil { cmd.Printf("%v\n", v.Value) } - exit(nil) + exit(cmd, nil) }, } @@ -66,10 +55,10 @@ func Settings(rootCmd *cobra.Command, service settings.Service) { } if err := v.SetValueAsString(value); err != nil { - exit(err) + exit(cmd, err) } - exit(service.Set(v)) + exit(cmd, service.Set(v)) }, } @@ -78,7 +67,7 @@ func Settings(rootCmd *cobra.Command, service settings.Service) { Short: "Set value (raw JSON) for a specific key", Args: cobra.MinimumNArgs(1), Run: func(cmd *cobra.Command, args []string) { - exit(service.Delete(args[0], 0)) + exit(cmd, service.Delete(args[0], 0)) }, }