Arbitrary CLI flags parser, like argparse in Python.
Go to file
2019-12-22 01:37:13 +05:00
example Linting and attempt to make Drone execute tests and linting in parallel. 2019-12-22 01:31:33 +05:00
.drone.yml go 1.12 is deprecated. 2019-12-22 01:37:13 +05:00
.gitignore Initial commit. 2017-08-20 14:59:51 +05:00
.golangci.yml Linting and attempt to make Drone execute tests and linting in parallel. 2019-12-22 01:31:33 +05:00
exported.go Linting and attempt to make Drone execute tests and linting in parallel. 2019-12-22 01:31:33 +05:00
flag.go Moved to my Gitea, switched to Drone CI, removed vendor, updated README. 2019-10-15 21:20:49 +05:00
flagger_test.go Moved to my Gitea, switched to Drone CI, removed vendor, updated README. 2019-10-15 21:20:49 +05:00
flagger.go Linting and attempt to make Drone execute tests and linting in parallel. 2019-12-22 01:31:33 +05:00
go.mod go 1.12 is deprecated. 2019-12-22 01:37:13 +05:00
go.sum Linting. 2019-12-22 01:29:18 +05:00
LICENSE Moved to my Gitea, switched to Drone CI, removed vendor, updated README. 2019-10-15 21:20:49 +05:00
loggerinterface.go Moved to my Gitea, switched to Drone CI, removed vendor, updated README. 2019-10-15 21:20:49 +05:00
README.md Linting. 2019-12-22 01:29:18 +05:00

Flagger

GoDoc Drone (self-hosted) Discord Keybase XLM Go Report Card

Flagger is an arbitrary CLI flags parser, like argparse in Python. Flagger is able to parse boolean, integer and string flags.

Installation

go get -u -v go.dev.pztrn.name/flagger

Usage

Flagger requires logging interface to be passed on initialization. See loggerinterface.go for required logging functions. It is able to run with standart log package, in that case initialize flagger like:

flgr = flagger.New("My Super Program", flagger.LoggerInterface(log.New(os.Stdout, "testing logger: ", log.Lshortfile)))
flgr.Initialize()

Adding a flag is easy, just fill Flag structure and pass to AddFlag() call:

flag_bool := Flag{
    Name: "boolflag",
    Description: "Boolean flag",
    Type: "bool",
    DefaultValue: true,
}
err := flgr.AddFlag(&flag_bool)
if err != nil {
    ...
}

After adding all neccessary flags you should issue Parse() call to get them parsed:

flgr.Parse()

After parsed they can be obtained everywhere you want, like:

val, err := flgr.GetBoolValue("boolflag")
if err != nil {
    ...
}

For more examples take a look at flagger_test.go file or at GoDoc.