Added example program, New() now requires application name, fixed -h and -help.
This commit is contained in:
parent
d02921ea77
commit
ba5b52918e
19
example/main.go
Normal file
19
example/main.go
Normal file
@ -0,0 +1,19 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"gitlab.com/pztrn/flagger"
|
||||
)
|
||||
|
||||
var f *flagger.Flagger
|
||||
|
||||
func main() {
|
||||
f = flagger.New("testprogram", nil)
|
||||
f.Initialize()
|
||||
f.AddFlag(&flagger.Flag{
|
||||
Name: "testflag",
|
||||
Description: "Just a test flag",
|
||||
Type: "bool",
|
||||
DefaultValue: false,
|
||||
})
|
||||
f.Parse()
|
||||
}
|
@ -31,12 +31,14 @@ import (
|
||||
|
||||
var (
|
||||
logger LoggerInterface
|
||||
applicationName string
|
||||
)
|
||||
|
||||
// New creates new Flagger instance.
|
||||
// If no logger will be passed - we will use default "log" module and will
|
||||
// print logs to stdout.
|
||||
func New(l LoggerInterface) *Flagger {
|
||||
func New(appName string, l LoggerInterface) *Flagger {
|
||||
applicationName = appName
|
||||
if l == nil {
|
||||
lg := log.New(os.Stdout, "Flagger: ", log.LstdFlags)
|
||||
logger = LoggerInterface(lg)
|
||||
|
@ -102,7 +102,7 @@ func (f *Flagger) Initialize() {
|
||||
f.flagsInt = make(map[string]*int)
|
||||
f.flagsString = make(map[string]*string)
|
||||
|
||||
f.flagSet = flag.NewFlagSet("flagger", flag.ContinueOnError)
|
||||
f.flagSet = flag.NewFlagSet(applicationName, flag.ContinueOnError)
|
||||
}
|
||||
|
||||
// Parse adds flags from flags map to flag package and parse
|
||||
@ -130,6 +130,6 @@ func (f *Flagger) Parse() {
|
||||
}
|
||||
}
|
||||
|
||||
logger.Print("Parsing CLI parameters...")
|
||||
f.flagSet.Parse(os.Args)
|
||||
logger.Print("Parsing CLI parameters:", os.Args)
|
||||
f.flagSet.Parse(os.Args[1:])
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user