diff --git a/README.md b/README.md index 9ce5ec2..1cf8a59 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,7 @@ go get gopkg.in/yaml.v3 1. Install **config** library: ```sh -go get github.com/eschao/config +git@git.mousesoft.ru:ms/config.git ``` ## Usage @@ -41,6 +41,7 @@ Like JSON, Yaml, **config** uses tags to define configurations: * int8, int16, int, int32, int64 * uint8, uint16, uint, uint32, uint64 * float32, float64 +* time.Duration * slice type. e.g: []string, []int ... #### 2. Defines **default** values @@ -287,33 +288,49 @@ Examples: Then, you can parse as below: ```golang - dbConfig := Database{} +dbConfig := Database{} - // parse default values - if err := config.ParseDefault(&dbConfig); err != nil { - // error handling - } +// parse default values +if err := config.ParseDefault(&dbConfig); err != nil { + // error handling +} - // parse configuration file from command line - err := config.ParseConfig(&dbConfig, "c") +cmd := config.NewCLI("") +if err := cmd.Init(&dbConfig); err != nil { + // error handling +} + +// capture cli flags +args := cmd.Capture(os.Args) + +// parse cli flags of application, urfave for example +flagSet.Parse(args) + +// parse captured cli flags of config +if err := cmd.Parse(cmd.Args); err != nil { + // error handling +} + +// parse configuration file from command line +err := config.ParseConfig(&dbConfig, "c") - // parse default configurations - if err != nil { - err = config.ParseConfigFile(&dbConfig), "") - } +// parse default configurations +if err != nil { + err = config.ParseConfigFile(&dbConfig), "") +} - // parse environment variables - if err != nil { - err = config.ParseEnv(&dbConfig) - } +// parse environment variables +if err != nil { + err = config.ParseEnv(&dbConfig) +} - // parse command line - if err != nil { - err = config.ParseCli(&dbConfig) - } +// parse command line +if err != nil { + err = config.ParseCli(&dbConfig) +} - // check if all required configurations are set - ... +// check if all required configurations are set +... ``` You don't need to call all of them. Just invokes parsing function that your need.