3
0

Refactor CLI commands exit() helper

This commit is contained in:
Denis Arh
2019-04-03 23:14:20 +02:00
parent 6719d2cdf8
commit 375e155f9c
3 changed files with 20 additions and 31 deletions

View File

@@ -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)
}
}

View File

@@ -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)
}
},
}

View File

@@ -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))
},
}