Arbitrary CLI flags parser, like argparse in Python.
You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Stanislav Nikitin afcd13f1ef
continuous-integration/drone/push Build is failing Details
Switch to mirrorred images for Drone and make linters happy.
12 months ago
example Drone, linter improvements. 3 years ago
.drone.yml Switch to mirrorred images for Drone and make linters happy. 12 months ago
.gitignore gitignore and Drone configuration updates. 2 years ago
.golangci.yml Switch to mirrorred images for Drone and make linters happy. 12 months ago
LICENSE Moved to my Gitea, switched to Drone CI, removed vendor, updated README. 4 years ago
README.md Linting. 4 years ago
errors.go Drone, linter improvements. 3 years ago
exported.go Switch to mirrorred images for Drone and make linters happy. 12 months ago
flag.go Switch to mirrorred images for Drone and make linters happy. 12 months ago
flagger.go Switch to mirrorred images for Drone and make linters happy. 12 months ago
flagger_test.go Switch to mirrorred images for Drone and make linters happy. 12 months ago
go.mod Drone, linter improvements. 3 years ago
go.sum Drone, linter improvements. 3 years ago
loggerinterface.go Moved to my Gitea, switched to Drone CI, removed vendor, updated README. 4 years ago

README.md

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.