in tools/tools.go [110:242]
func RunTool(name string, args []string) (int, error) {
switch name {
case "wsk":
//fmt.Println("=== wsk ===")
cmd := append([]string{"wsk"}, args...)
if err := Wsk(cmd); err != nil {
return 1, err
}
case "awk":
// fmt.Println("=== awk ===")
os.Args = append([]string{"goawk"}, args...)
if err := goawk.AwkMain(); err != nil {
return 1, err
}
case "jq":
os.Args = append([]string{"gojq"}, args...)
return gojq.Run(), nil
case "sh":
os.Args = append([]string{"sh"}, args...)
return Sh()
case "envsubst":
os.Args = append([]string{"envsubst"}, args...)
if err := envsubst.EnvsubstMain(); err != nil {
return 1, err
}
case "filetype":
os.Args = append([]string{"mkdir"}, args...)
if err := Filetype(); err != nil {
return 1, err
}
case "random":
if err := RandTool(args...); err != nil {
return 1, err
}
case "datefmt":
if err := DateFmtTool(append([]string{"datefmt"}, args...)); err != nil {
return 1, err
}
case "die":
if len(args) > 0 {
fmt.Println(strings.Join(args, " "))
}
return 1, nil
case "urlenc":
os.Args = append([]string{"urlenc"}, args...)
if err := URLEncTool(); err != nil {
return 1, err
}
case "replace":
os.Args = append([]string{"replace"}, args...)
return replace.ReplaceMain()
case "base64":
os.Args = append([]string{"base64"}, args...)
if err := base64Tool(); err != nil {
return 1, err
}
case "validate":
os.Args = append([]string{"validate"}, args...)
if err := validateTool(); err != nil {
return 1, err
}
case "echoif":
os.Args = append([]string{"echoif"}, args...)
if err := echoIfTool(); err != nil {
return 1, err
}
case "echoifempty":
os.Args = append([]string{"echoifempty"}, args...)
if err := echoIfEmptyTool(); err != nil {
return 1, err
}
case "echoifexists":
os.Args = append([]string{"echoifexists"}, args...)
if err := echoIfExistsTool(); err != nil {
return 1, err
}
case "needupdate":
if err := needUpdateTool(args); err != nil {
return 1, err
}
case "gron":
os.Args = append([]string{"gron"}, args...)
return gron.GronMain()
case "jj":
os.Args = append([]string{"jj"}, args...)
return jj.JJMain()
case "rename":
os.Args = append([]string{"rename"}, args...)
return Rename()
case "remove":
os.Args = append([]string{"remove"}, args...)
return Remove()
case "executable":
os.Args = append([]string{"executable"}, args...)
return Executable()
case "extract":
os.Args = append([]string{"extract"}, args...)
return Extract()
case "empty":
os.Args = append([]string{"empty"}, args...)
return Empty()
case "opspath":
os.Args = append([]string{"opspath"}, args...)
return OpsPath()
default:
return 1, fmt.Errorf("unknown tool")
}
return 0, nil
}