dissertation-2-code/flags/flags.go
Jake Hillion 5587f1f52e
All checks were successful
continuous-integration/drone/push Build is passing
daemonize
2021-03-25 13:50:48 +00:00

34 lines
670 B
Go

package flags
import (
"fmt"
"github.com/jessevdk/go-flags"
)
type Options struct {
ConfigFile string `short:"c" long:"config" description:"Configuration file location" value-name:"FILE"`
PidFile string `short:"p" long:"pid" description:"PID file location"`
InterfaceName string
}
func ParseFlags() (*Options, error) {
o := new(Options)
args, err := flags.Parse(o)
if err != nil {
return nil, err
}
if len(args) > 0 {
o.InterfaceName = args[0]
if o.ConfigFile == "" {
o.ConfigFile = fmt.Sprintf(DefaultConfigFile, o.InterfaceName)
}
if o.PidFile == "" {
o.PidFile = fmt.Sprintf(DefaultPidFile, o.InterfaceName)
}
}
return o, err
}