args/arg.go

51 lines
797 B
Go

package args
import "time"
type Arg struct {
Env string
Flag string
Help string
Default interface{}
Value interface{}
ArgType Type
}
func NewArg(argType Type, key, help string, def interface{}) *Arg {
return &Arg{
Env: key,
Flag: key,
Help: help,
Default: def,
ArgType: argType,
}
}
func (a *Arg) GetInt(key string) int {
if a.ArgType != INT {
return -1
}
return a.Value.(int)
}
func (a *Arg) GetString(key string) string {
if a.ArgType != STRING {
return ""
}
return a.Value.(string)
}
func (a *Arg) GetBool(key string) bool {
if a.ArgType != BOOL {
return false
}
return a.Value.(bool)
}
func (a *Arg) GetDuration(key string) time.Duration {
if a.ArgType != DURATION {
return time.Duration(0)
}
return a.Value.(time.Duration)
}