github.com/icyphox/x@v0.0.355-0.20220311094250-029bd783e8b8/flagx/flagx.go (about) 1 package flagx 2 3 import ( 4 "time" 5 6 "github.com/spf13/pflag" 7 8 "github.com/spf13/cobra" 9 10 "github.com/ory/x/cmdx" 11 ) 12 13 func NewFlagSet(name string) *pflag.FlagSet { 14 return pflag.NewFlagSet(name, pflag.ContinueOnError) 15 } 16 17 // MustGetBool returns a bool flag or fatals if an error occurs. 18 func MustGetBool(cmd *cobra.Command, name string) bool { 19 ok, err := cmd.Flags().GetBool(name) 20 if err != nil { 21 cmdx.Fatalf(err.Error()) 22 } 23 return ok 24 } 25 26 // MustGetString returns a string flag or fatals if an error occurs. 27 func MustGetString(cmd *cobra.Command, name string) string { 28 s, err := cmd.Flags().GetString(name) 29 if err != nil { 30 cmdx.Fatalf(err.Error()) 31 } 32 return s 33 } 34 35 // MustGetDuration returns a time.Duration flag or fatals if an error occurs. 36 func MustGetDuration(cmd *cobra.Command, name string) time.Duration { 37 d, err := cmd.Flags().GetDuration(name) 38 if err != nil { 39 cmdx.Fatalf(err.Error()) 40 } 41 return d 42 } 43 44 // MustGetStringSlice returns a []string flag or fatals if an error occurs. 45 func MustGetStringSlice(cmd *cobra.Command, name string) []string { 46 ss, err := cmd.Flags().GetStringSlice(name) 47 if err != nil { 48 cmdx.Fatalf(err.Error()) 49 } 50 return ss 51 } 52 53 // MustGetInt returns a int flag or fatals if an error occurs. 54 func MustGetInt(cmd *cobra.Command, name string) int { 55 ss, err := cmd.Flags().GetInt(name) 56 if err != nil { 57 cmdx.Fatalf(err.Error()) 58 } 59 return ss 60 } 61 62 // MustGetUint8 returns a uint8 flag or fatals if an error occurs. 63 func MustGetUint8(cmd *cobra.Command, name string) uint8 { 64 v, err := cmd.Flags().GetUint8(name) 65 if err != nil { 66 cmdx.Fatalf(err.Error()) 67 } 68 return v 69 } 70 71 // MustGetUint32 returns a uint32 flag or fatals if an error occurs. 72 func MustGetUint32(cmd *cobra.Command, name string) uint32 { 73 v, err := cmd.Flags().GetUint32(name) 74 if err != nil { 75 cmdx.Fatalf(err.Error()) 76 } 77 return v 78 }