Documentation
¶
Overview ¶
Example ¶
Example prints out values
package main
import (
"flag"
"fmt"
)
// Create a new config.
var tc Config
var tc2 Config2
// Config's values must be exported
type Config struct {
Flag1 string // Set by flag default, json, and CLI - CLI precedence
Flag2 string // Set by json only - json precedence
Flag3 string // Set by flag default only - default precedence
Flag4 string // Set by json and flag default - json precedence
Flag5 int // json only int - json precedence
Flag6 int `json:"flagsix"` // json with flag default int - json precedence. Tests also tags.
Flag7 string // Test environmental variable retrieval and json overwritting. No default, or CLI. - Env precedence
Flag8 string // Test environmental value expansion from value in json config.
Flag9 string // Test expanding the default flag value ($FLAG7) with a variable to an environmental variable."
}
type Config2 struct {
Flag10 string // Test EnvPrefix. CLI only.
}
// flags holds all flag definitions for CLI and application set.
// Flag 2 and 5 are missing to test jsons values which will still populate.
func flags() {
flag.StringVar(&tc.Flag1, "flag1", "defaultFlag1", "flag1Desc")
flag.StringVar(&tc.Flag3, "flag3", "defaultFlag3", "flag3Desc")
flag.StringVar(&tc.Flag4, "flag4", "defaultFlag4", "flag4Desc")
flag.IntVar(&tc.Flag6, "flag6", 1, "flag6Desc") // Set default value to something other than 6 for testing.
flag.StringVar(&tc.Flag7, "flag7", "defaultFlag7", "Flag7's value comes from environmental variable.")
flag.StringVar(&tc.Flag8, "flag8", "defaultFlag8", "Flag8 tests environmental expansion.")
flag.StringVar(&tc.Flag9, "flag9", "$FLAG7", "Flag9's value comes from expanding the default flag value ($FLAG7) with a variable to an environmental variable.")
Parse(&tc)
EnvPrefix = "JSONFLAG_"
flag.StringVar(&tc2.Flag10, "flag10", "", "Flag10 tests prefixing the EnvPrefix to env vars")
Parse(&tc2)
}
// Example prints out values
func main() {
fmt.Println(tc)
fmt.Println(tc2)
}
Output: {cliFlag1 jsonFlag2 defaultFlag3 jsonFlag4 5 6 FLAG7VALUE Flag8Env FLAG7VALUE} {FLAG10VALUE}
Index ¶
Examples ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var EnvPrefix = ""
EnvPrefix will be prepended to flag names if set. Example, flag with the name "flag1" and a prefix of "MYAPP_" will become "MYAPP_FLAG1"
View Source
var Path = flag.String("config", "config.json5", "Path to json config file.")
Path defines default path. This will be relative to pwd.
Functions ¶
Types ¶
This section is empty.
Click to show internal directories.
Click to hide internal directories.