Documentation ¶
Overview ¶
Package configflag provides a utility for registering config related command line options with the stdlib flag package.
Index ¶
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type FlagStringSlice ¶
type FlagStringSlice struct { Value []string // contains filtered or unexported fields }
FlagStringSlice represents a slice of strings. When used as a flag variable, it allows for multiple string values. For example, it can be used like this:
var configFiles FlagStringSlice flag.Var(&configFiles, "f", "configuration file(s)")
Then it can be invoked like this:
./app -f file1.yaml -f file2.yaml -f valueN.yaml
Finally, when the flags are parsed, the variable contains all the values.
Example ¶
The FlagStringSlice allows for multiple values when used as a flag variable.
package main import ( "flag" "fmt" "github.com/m3db/m3/src/x/config/configflag" ) func main() { var configFiles configflag.FlagStringSlice fs := flag.NewFlagSet("config", flag.PanicOnError) fs.Var(&configFiles, "f", "config files") noError(fs.Parse([]string{"-f", "file1.yaml", "-f", "file2.yaml", "-f", "file3.yaml"})) fmt.Println("Config files:", configFiles.Value) } func noError(err error) { if err != nil { panic(err.Error()) } }
Output: Config files: [file1.yaml file2.yaml file3.yaml]
func (*FlagStringSlice) Set ¶
func (i *FlagStringSlice) Set(value string) error
Set appends a string value to the slice.
func (*FlagStringSlice) String ¶
func (i *FlagStringSlice) String() string
String() returns a string implementation of the slice.
type Options ¶
type Options struct { // set by commandline flags // ConfigFiles (-f) is a list of config files to load ConfigFiles FlagStringSlice // ShouldDumpConfigAndExit (-d) causes MainLoad to print config to stdout, // and then exit. ShouldDumpConfigAndExit bool // contains filtered or unexported fields }
Options represents the values of config command line flags
func (*Options) MainLoad ¶
MainLoad is a convenience method, intended for use in main(), which handles all config commandline options. It:
- Dumps config and exits if -d was passed.
- Loads configuration otherwise.
Users who want a subset of this behavior should call individual methods.
func (*Options) Register ¶
func (opts *Options) Register()
Register registers commandline options with the default flagset.
func (*Options) RegisterFlagSet ¶
RegisterFlagSet registers commandline options with the given flagset.