func RunTool()

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
}