89 lines
1.4 KiB
Go
89 lines
1.4 KiB
Go
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
|
|
}
|