serpents

package module
v1.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 17, 2023 License: GPL-2.0 Imports: 5 Imported by: 4

README

Go Reference

vlbeaudoin/serpents

Go module built around spf13/pflag and spf13/viper to wrap around and simplify cobra-viper flag and config value duos declarations

It is licensed under the MIT license (see LICENSE for more details)

Usage

Use in your go project with:

$ go get codeberg.org/vlbeaudoin/serpents

See the Go reference for further documentation and examples

Documentation

Overview

Module serpents is a Wrapper around spf13/cobra and spf13/viper

It intends to allow easier and less error-prone flag/config-option duos declarations, without replacing either tool.

Example usage:

0) Import serpents

$ go get codeberg.org/vlbeaudoin/serpents

1) Declare a config struct.

In this example, it contains fields `Port` and `Banner.Motd`.

Note: all fields will need to be registered to be updated in calls to Config(). This is done in step 3).

type config struct {
  Banner struct {
    Motd string
  }

  Port int
}

2) Declare the getter for the current config.

It uses viper.Unmarshal, giving precedence to command-line flags over viper config values.

func Config() (cfg config, err error) {
    return cfg, viper.Unmarshal(&cfg)
}

3) Register the flags.

This is done on a *pflag.FlagSet, which is generally gotten from either:

- (*cobra.Command).Flags() - (*cobra.Command).PersistentFlags()

func RegisterFlags(flagSet *pflag.FlagSet) error {
  if err := serpents.Int(flagSet,
    "port", "port", "application port", 1312); err != nil {
    return err
  }

  if err := serpents.String(flagSet,
    "banner.motd", "banner-motd", "Message-Of-The-Day", "Hello, world!"); err != nil {
    return err
  }

  return nil
}

After calling `RegisterFlags()` on the proper flagset (for example, `rootCmd.PersistentFlags()`), you will be able to call `Config()` to get values registered by cobra and viper for your specific flags.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Bool added in v0.5.0

func Bool(flagSet *pflag.FlagSet, viperName, cobraName string, cobraDefault bool, cobraDescription string) error

Bool registers a new cobra Bool flag and associated viper config option

func BoolP added in v0.6.0

func BoolP(flagSet *pflag.FlagSet, viperName, cobraName, cobraShortName string, cobraDefault bool, cobraDescription string) error

BoolP registers a new cobra Bool pflag and associated viper config option

func BoolSlice added in v0.6.0

func BoolSlice(flagSet *pflag.FlagSet, viperName, cobraName string, cobraDefault []bool, cobraDescription string) error

BoolSlice registers a new cobra BoolSlice flag and associated viper config option

func BoolSliceP added in v0.6.0

func BoolSliceP(flagSet *pflag.FlagSet, viperName, cobraName, cobraShortName string, cobraDefault []bool, cobraDescription string) error

BoolSliceP registers a new cobra BoolSlice pflag and associated viper config option

func BytesBase64 added in v0.8.0

func BytesBase64(flagSet *pflag.FlagSet, viperName, cobraName string, cobraDefault []byte, cobraDescription string) error

BytesBase64 registers a new cobra BytesBase64 flag and associated viper config option

func BytesBase64P added in v0.8.0

func BytesBase64P(flagSet *pflag.FlagSet, viperName, cobraName, cobraShortName string, cobraDefault []byte, cobraDescription string) error

BytesBase64P registers a new cobra BytesBase64 pflag and associated viper config option

func BytesHex added in v0.8.0

func BytesHex(flagSet *pflag.FlagSet, viperName, cobraName string, cobraDefault []byte, cobraDescription string) error

BytesHex registers a new cobra BytesHex flag and associated viper config option

func BytesHexP added in v0.8.0

func BytesHexP(flagSet *pflag.FlagSet, viperName, cobraName, cobraShortName string, cobraDefault []byte, cobraDescription string) error

BytesHexP registers a new cobra BytesHex pflag and associated viper config option

func Count added in v0.9.0

func Count(flagSet *pflag.FlagSet, viperName, cobraName string, cobraDescription string) error

Count registers a new cobra Count flag and associated viper config option

func CountP added in v0.9.0

func CountP(flagSet *pflag.FlagSet, viperName, cobraName, cobraShortName string, cobraDescription string) error

CountP registers a new cobra Count pflag and associated viper config option

func Duration added in v0.10.0

func Duration(flagSet *pflag.FlagSet, viperName, cobraName string, cobraDefault time.Duration, cobraDescription string) error

Duration registers a new cobra Duration flag and associated viper config option

func DurationP added in v0.10.0

func DurationP(flagSet *pflag.FlagSet, viperName, cobraName, cobraShortName string, cobraDefault time.Duration, cobraDescription string) error

DurationP registers a new cobra Duration pflag and associated viper config option

func DurationSlice added in v0.10.0

func DurationSlice(flagSet *pflag.FlagSet, viperName, cobraName string, cobraDefault []time.Duration, cobraDescription string) error

DurationSlice registers a new cobra DurationSlice flag and associated viper config option

func DurationSliceP added in v0.10.0

func DurationSliceP(flagSet *pflag.FlagSet, viperName, cobraName, cobraShortName string, cobraDefault []time.Duration, cobraDescription string) error

DurationSliceP registers a new cobra DurationSlice pflag and associated viper config option

func Float32 added in v0.11.0

func Float32(flagSet *pflag.FlagSet, viperName, cobraName string, cobraDefault float32, cobraDescription string) error

Float32 registers a new cobra Float32 flag and associated viper config option

func Float32P added in v0.11.0

func Float32P(flagSet *pflag.FlagSet, viperName, cobraName, cobraShortName string, cobraDefault float32, cobraDescription string) error

Float32P registers a new cobra Float32 pflag and associated viper config option

func Float32Slice added in v0.11.0

func Float32Slice(flagSet *pflag.FlagSet, viperName, cobraName string, cobraDefault []float32, cobraDescription string) error

Float32Slice registers a new cobra Float32Slice flag and associated viper config option

func Float32SliceP added in v0.11.0

func Float32SliceP(flagSet *pflag.FlagSet, viperName, cobraName, cobraShortName string, cobraDefault []float32, cobraDescription string) error

Float32SliceP registers a new cobra Float32Slice pflag and associated viper config option

func Float64 added in v0.11.0

func Float64(flagSet *pflag.FlagSet, viperName, cobraName string, cobraDefault float64, cobraDescription string) error

Float64 registers a new cobra Float64 flag and associated viper config option

func Float64P added in v0.11.0

func Float64P(flagSet *pflag.FlagSet, viperName, cobraName, cobraShortName string, cobraDefault float64, cobraDescription string) error

Float64P registers a new cobra Float64 pflag and associated viper config option

func Float64Slice added in v0.11.0

func Float64Slice(flagSet *pflag.FlagSet, viperName, cobraName string, cobraDefault []float64, cobraDescription string) error

Float64Slice registers a new cobra Float64Slice flag and associated viper config option

func Float64SliceP added in v0.11.0

func Float64SliceP(flagSet *pflag.FlagSet, viperName, cobraName, cobraShortName string, cobraDefault []float64, cobraDescription string) error

Float64SliceP registers a new cobra Float64Slice pflag and associated viper config option

func IP added in v0.14.0

func IP(flagSet *pflag.FlagSet, viperName, cobraName string, cobraDefault net.IP, cobraDescription string) error

IP registers a new cobra IP flag and associated viper config option

func IPMask added in v0.14.0

func IPMask(flagSet *pflag.FlagSet, viperName, cobraName string, cobraDefault net.IPMask, cobraDescription string) error

IPMask registers a new cobra IPMask flag and associated viper config option

func IPMaskP added in v0.14.0

func IPMaskP(flagSet *pflag.FlagSet, viperName, cobraName, cobraShortName string, cobraDefault net.IPMask, cobraDescription string) error

IPMaskP registers a new cobra IPMask pflag and associated viper config option

func IPNet added in v0.14.0

func IPNet(flagSet *pflag.FlagSet, viperName, cobraName string, cobraDefault net.IPNet, cobraDescription string) error

IPNet registers a new cobra IPNet flag and associated viper config option

func IPNetP added in v0.14.0

func IPNetP(flagSet *pflag.FlagSet, viperName, cobraName, cobraShortName string, cobraDefault net.IPNet, cobraDescription string) error

IPNetP registers a new cobra IPNet pflag and associated viper config option

func IPP added in v0.14.0

func IPP(flagSet *pflag.FlagSet, viperName, cobraName, cobraShortName string, cobraDefault net.IP, cobraDescription string) error

IPP registers a new cobra IP pflag and associated viper config option

func IPSlice added in v0.14.0

func IPSlice(flagSet *pflag.FlagSet, viperName, cobraName string, cobraDefault []net.IP, cobraDescription string) error

IPSlice registers a new cobra IPSlice flag and associated viper config option

func IPSliceP added in v0.14.0

func IPSliceP(flagSet *pflag.FlagSet, viperName, cobraName, cobraShortName string, cobraDefault []net.IP, cobraDescription string) error

IPSliceP registers a new cobra IPSlice pflag and associated viper config option

func Int added in v0.5.0

func Int(flagSet *pflag.FlagSet, viperName, cobraName string, cobraDefault int, cobraDescription string) error

Int registers a new cobra Int flag and associated viper config option

func Int16 added in v0.12.0

func Int16(flagSet *pflag.FlagSet, viperName, cobraName string, cobraDefault int16, cobraDescription string) error

Int16 registers a new cobra Int16 flag and associated viper config option

func Int16P added in v0.12.0

func Int16P(flagSet *pflag.FlagSet, viperName, cobraName, cobraShortName string, cobraDefault int16, cobraDescription string) error

Int16P registers a new cobra Int16 pflag and associated viper config option

func Int32 added in v0.12.0

func Int32(flagSet *pflag.FlagSet, viperName, cobraName string, cobraDefault int32, cobraDescription string) error

Int32 registers a new cobra Int32 flag and associated viper config option

func Int32P added in v0.12.0

func Int32P(flagSet *pflag.FlagSet, viperName, cobraName, cobraShortName string, cobraDefault int32, cobraDescription string) error

Int32P registers a new cobra Int32 pflag and associated viper config option

func Int32Slice added in v0.12.0

func Int32Slice(flagSet *pflag.FlagSet, viperName, cobraName string, cobraDefault []int32, cobraDescription string) error

Int32Slice registers a new cobra Int32Slice flag and associated viper config option

func Int32SliceP added in v0.12.0

func Int32SliceP(flagSet *pflag.FlagSet, viperName, cobraName, cobraShortName string, cobraDefault []int32, cobraDescription string) error

Int32SliceP registers a new cobra Int32Slice pflag and associated viper config option

func Int64 added in v0.12.0

func Int64(flagSet *pflag.FlagSet, viperName, cobraName string, cobraDefault int64, cobraDescription string) error

Int64 registers a new cobra Int64 flag and associated viper config option

func Int64P added in v0.12.0

func Int64P(flagSet *pflag.FlagSet, viperName, cobraName, cobraShortName string, cobraDefault int64, cobraDescription string) error

Int64P registers a new cobra Int64 pflag and associated viper config option

func Int64Slice added in v0.12.0

func Int64Slice(flagSet *pflag.FlagSet, viperName, cobraName string, cobraDefault []int64, cobraDescription string) error

Int64Slice registers a new cobra Int64Slice flag and associated viper config option

func Int64SliceP added in v0.12.0

func Int64SliceP(flagSet *pflag.FlagSet, viperName, cobraName, cobraShortName string, cobraDefault []int64, cobraDescription string) error

Int64SliceP registers a new cobra Int64Slice pflag and associated viper config option

func Int8 added in v0.12.0

func Int8(flagSet *pflag.FlagSet, viperName, cobraName string, cobraDefault int8, cobraDescription string) error

Int8 registers a new cobra Int8 flag and associated viper config option

func Int8P added in v0.12.0

func Int8P(flagSet *pflag.FlagSet, viperName, cobraName, cobraShortName string, cobraDefault int8, cobraDescription string) error

Int8P registers a new cobra Int8 pflag and associated viper config option

func IntP added in v0.12.0

func IntP(flagSet *pflag.FlagSet, viperName, cobraName, cobraShortName string, cobraDefault int, cobraDescription string) error

IntP registers a new cobra Int pflag and associated viper config option

func IntSlice added in v0.12.0

func IntSlice(flagSet *pflag.FlagSet, viperName, cobraName string, cobraDefault []int, cobraDescription string) error

IntSlice registers a new cobra IntSlice flag and associated viper config option

func IntSliceP added in v0.12.0

func IntSliceP(flagSet *pflag.FlagSet, viperName, cobraName, cobraShortName string, cobraDefault []int, cobraDescription string) error

IntSliceP registers a new cobra IntSlice pflag and associated viper config option

func String added in v0.5.0

func String(flagSet *pflag.FlagSet, viperName, cobraName, cobraDefault, cobraDescription string) error

String registers a new cobra String flag and associated viper config option

func StringArray added in v0.15.0

func StringArray(flagSet *pflag.FlagSet, viperName, cobraName string, cobraDefault []string, cobraDescription string) error

StringArray registers a new cobra StringArray flag and associated viper config option

func StringArrayP added in v0.15.0

func StringArrayP(flagSet *pflag.FlagSet, viperName, cobraName, cobraShortName string, cobraDefault []string, cobraDescription string) error

StringArrayP registers a new cobra StringArray pflag and associated viper config option

func StringP added in v0.5.0

func StringP(flagSet *pflag.FlagSet, viperName, cobraName, cobraShortName, cobraDefault, cobraDescription string) error

StringP registers a new cobra String pflag and associated viper config option

func StringSlice added in v0.15.0

func StringSlice(flagSet *pflag.FlagSet, viperName, cobraName string, cobraDefault []string, cobraDescription string) error

StringSlice registers a new cobra StringSlice flag and associated viper config option

func StringSliceP added in v0.15.0

func StringSliceP(flagSet *pflag.FlagSet, viperName, cobraName, cobraShortName string, cobraDefault []string, cobraDescription string) error

StringSliceP registers a new cobra StringSlice pflag and associated viper config option

func StringToInt added in v0.16.0

func StringToInt(flagSet *pflag.FlagSet, viperName, cobraName string, cobraDefault map[string]int, cobraDescription string) error

StringToInt registers a new cobra StringToInt flag and associated viper config option

func StringToInt64 added in v0.16.0

func StringToInt64(flagSet *pflag.FlagSet, viperName, cobraName string, cobraDefault map[string]int64, cobraDescription string) error

StringToInt64 registers a new cobra StringToInt64 flag and associated viper config option

func StringToInt64P added in v0.16.0

func StringToInt64P(flagSet *pflag.FlagSet, viperName, cobraName, cobraShortName string, cobraDefault map[string]int64, cobraDescription string) error

StringToInt64P registers a new cobra StringToInt64 pflag and associated viper config option

func StringToIntP added in v0.16.0

func StringToIntP(flagSet *pflag.FlagSet, viperName, cobraName, cobraShortName string, cobraDefault map[string]int, cobraDescription string) error

StringToIntP registers a new cobra StringToInt pflag and associated viper config option

func StringToString added in v0.16.0

func StringToString(flagSet *pflag.FlagSet, viperName, cobraName string, cobraDefault map[string]string, cobraDescription string) error

StringToString registers a new cobra StringToString flag and associated viper config option

func StringToStringP added in v0.16.0

func StringToStringP(flagSet *pflag.FlagSet, viperName, cobraName, cobraShortName string, cobraDefault map[string]string, cobraDescription string) error

StringToStringP registers a new cobra StringToString pflag and associated viper config option

func Uint added in v0.13.0

func Uint(flagSet *pflag.FlagSet, viperName, cobraName string, cobraDefault uint, cobraDescription string) error

Uint registers a new cobra Uint flag and associated viper config option

func Uint16 added in v0.13.0

func Uint16(flagSet *pflag.FlagSet, viperName, cobraName string, cobraDefault uint16, cobraDescription string) error

Uint16 registers a new cobra Uint16 flag and associated viper config option

func Uint16P added in v0.13.0

func Uint16P(flagSet *pflag.FlagSet, viperName, cobraName, cobraShortName string, cobraDefault uint16, cobraDescription string) error

Uint16P registers a new cobra Uint16 pflag and associated viper config option

func Uint32 added in v0.13.0

func Uint32(flagSet *pflag.FlagSet, viperName, cobraName string, cobraDefault uint32, cobraDescription string) error

Uint32 registers a new cobra Uint32 flag and associated viper config option

func Uint32P added in v0.13.0

func Uint32P(flagSet *pflag.FlagSet, viperName, cobraName, cobraShortName string, cobraDefault uint32, cobraDescription string) error

Uint32P registers a new cobra Uint32P flag and associated viper config option

func Uint64 added in v0.13.0

func Uint64(flagSet *pflag.FlagSet, viperName, cobraName string, cobraDefault uint64, cobraDescription string) error

Uint64 registers a new cobra Uint64 flag and associated viper config option

func Uint64P added in v0.13.0

func Uint64P(flagSet *pflag.FlagSet, viperName, cobraName, cobraShortName string, cobraDefault uint64, cobraDescription string) error

Uint64P registers a new cobra Uint64 pflag and associated viper config option

func Uint8 added in v0.13.0

func Uint8(flagSet *pflag.FlagSet, viperName, cobraName string, cobraDefault uint8, cobraDescription string) error

Uint8 registers a new cobra Uint8 flag and associated viper config option

func Uint8P added in v0.13.0

func Uint8P(flagSet *pflag.FlagSet, viperName, cobraName, cobraShortName string, cobraDefault uint8, cobraDescription string) error

Uint8P registers a new cobra Uint8 pflag and associated viper config option

func UintP added in v0.13.0

func UintP(flagSet *pflag.FlagSet, viperName, cobraName, cobraShortName string, cobraDefault uint, cobraDescription string) error

UintP registers a new cobra Uint pflag and associated viper config option

func UintSlice added in v0.13.0

func UintSlice(flagSet *pflag.FlagSet, viperName, cobraName string, cobraDefault []uint, cobraDescription string) error

UintSlice registers a new cobra UintSlice flag and associated viper config option

func UintSliceP added in v0.13.0

func UintSliceP(flagSet *pflag.FlagSet, viperName, cobraName, cobraShortName string, cobraDefault []uint, cobraDescription string) error

UintSliceP registers a new cobra UintSlice pflag and associated viper config option

Types

This section is empty.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL