GO CLI инструменты с подкомандами, не работают

Я использую следующий код для поддержки этой команды:

  1. RTR конвертировать в TOML / путь / в / источник
  2. RTR конвертировать в README / путь / в / источник

convert должен быть main командовать toTOML а также toREADME должно быть как подкоманды или флаги

пока он работает в основной (root) справке показывает только конвертирование

Это помощь

Usage:
  rtr [command]

Available Commands:
  convert     Print anything to the screen
  help        Help about any command

Flags:
  -h, --help   help for rtr

Use "rtr [command] --help" for more information about a command.

Вопрос - я хочу, чтобы каким-то образом toTOML & toREADME отображался в разделе подкоманд или в флагах

я создал эту программу, которая работает и иллюстрирует проблему

package main

import (
    "fmt"
    "github.com/spf13/cobra"
)

func main() {
    var cmdConvert = &cobra.Command{
        Use:   "convert",
        Short: "Print anything to the screen",
        Run:nil,
    }
    var cmdTOML = &cobra.Command{
        Use:   "toTOML",
        Short: "convert to TOML",
        Run: func(cmd *cobra.Command, args []string) {
            fmt.Println("inside convert to TOML to path: " , args[0])
        },
    }
    var cmdREADME = &cobra.Command{
        Use:   "toREADME",
        Short: "convert to readme",
        Run: func(cmd *cobra.Command, args []string) {
            fmt.Println("inside convert to README to path: " , args[0])
        },
    }
    var rootCmd = &cobra.Command{Use: "rtr"}
    cmdConvert.AddCommand(cmdTOML,cmdREADME)
    rootCmd.AddCommand(cmdConvert)
    rootCmd.Execute()
}

Я пытаюсь также добавить cmdConvert.PersistentFlags().StringVar(&toTOML, "toTOML", "", "toTOML")

Но я когда отлаживаю и запускаю как

go run main.go convert toTOML /go/src/

а также

go run main.go convert --toTOML /go/src/

это не относится к cmdTOML Run функция с пути.

Мне нужно идти в RUN функционировать в соответствии с предоставленной командой и получить путь (последний аргумент), как я могу это сделать?

Это репо, которым я пользуюсь

0 ответов

Другие вопросы по тегам