1
0
mirror of https://github.com/Luzifer/rconfig.git synced 2024-09-19 08:53:00 +00:00
rconfig/example_test.go
Knut Ahlers c1c878fab9
Update deps, fix linter errors, bump min Go version
Signed-off-by: Knut Ahlers <knut@ahlers.me>
2023-12-20 12:13:59 +01:00

42 lines
935 B
Go

package rconfig_test
import (
"fmt"
"os"
"github.com/Luzifer/rconfig/v2"
)
func ExampleParse() {
// We're building an example configuration with a sub-struct to be filled
// by the Parse command.
config := struct {
Username string `default:"unknown" flag:"user,u" description:"Your name"`
Details struct {
Age int `default:"25" flag:"age" description:"Your age"`
}
}{}
// To have more relieable results we're setting os.Args to a known value.
// In real-life use cases you wouldn't do this but parse the original
// commandline arguments.
os.Args = []string{
"example",
"--user=Luzifer",
}
if err := rconfig.Parse(&config); err != nil {
panic(err)
}
fmt.Printf("Hello %s, happy birthday for your %dth birthday.",
config.Username,
config.Details.Age)
// You can also show an usage message for your user
rconfig.Usage()
// Output:
// Hello Luzifer, happy birthday for your 25th birthday.
}