51 lines
797 B
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)
|
|
}
|