Jake Hillion
5587f1f52e
All checks were successful
continuous-integration/drone/push Build is passing
34 lines
670 B
Go
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
|
|
}
|