42 lines
764 B
Go
42 lines
764 B
Go
package convids
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
"github.com/spf13/pflag"
|
|
)
|
|
|
|
var Help *bool
|
|
var Loop *bool
|
|
var DryRun *bool
|
|
|
|
func GetFlags(name string) *pflag.FlagSet {
|
|
flags := pflag.NewFlagSet(name, pflag.ExitOnError)
|
|
|
|
Help = flags.BoolP("help", "h", false, "Get Help")
|
|
Loop = flags.BoolP("loop", "l", false, "Loop")
|
|
DryRun = flags.BoolP("dry-run", "d", false, "Do a dry run (won't loop)")
|
|
|
|
flags.Usage = func() {
|
|
fmt.Printf("Usage of %s:\n", name)
|
|
flags.PrintDefaults()
|
|
}
|
|
return flags
|
|
}
|
|
|
|
func ParseFlags(name string, args []string) (*pflag.FlagSet, error) {
|
|
flags := GetFlags(name)
|
|
err := flags.Parse(args)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
if *DryRun {
|
|
err := flags.Set("loop", "false")
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
}
|
|
|
|
return flags, nil
|
|
}
|