package parser import "fmt" type Context struct { Command *Command App *App Flags map[string]*ArgFlag Args []string } func (c *Context) GetFlag(name string) (*ArgFlag, error) { flag, exists := c.Flags[name] if ! exists { return nil, fmt.Errorf("Context : ERROR : Flag(%s) not found", name) } return flag, nil } func (c *Context) GetValueInt(name string) (int64, error){ flag, err := c.GetFlag(name) if err != nil { return 0, err } value, err := flag.GetValueInt() if err != nil { return 0, err } return value, nil } func (c *Context) GetValueBool(name string) (bool, error){ flag, err := c.GetFlag(name) if err != nil { return false, err } value, err := flag.GetValueBool() if err != nil { return false, err } return value, nil } func (c *Context) GetValueFloat32(name string) (float32, error){ flag, err := c.GetFlag(name) if err != nil { return 0, err } value, err := flag.GetValueFloat32() if err != nil { return 0.0, err } return value, nil } func (c *Context) GetValueFloat64(name string) (float64, error){ flag, err := c.GetFlag(name) if err != nil { return 0.0, err } value, err := flag.GetValueFloat64() if err != nil { return 0.0, err } return value, nil } func (c *Context) GetValueString(name string) (string, error){ flag, err := c.GetFlag(name) if err != nil { return "", err } value, err := flag.GetValueString() if err != nil { return "", err } return value, nil }