Как напечатать все команды из подкоманды в Go? - PullRequest
0 голосов
/ 04 мая 2020

Я хотел бы сделать подкоманду в Golang, которая печатает все родительские команды. Пример:

$ cli-tool list
Commands available:
- h, help for more info
- version for current version of tool
- list to list all commands

Текущий код:

package main

import (
    "fmt"
    "os"
    "flag"
)

func main() {
    version := flag.NewFlagSet("version", flag.ExitOnError)
    list := flag.NewFlagSet("list", flag.ExitOnError)

    switch os.Args[1] {
    case "version":
        version.Parse(os.Args[2:])
    case "list":
        list.Parse(os.Args[2:])
    }

    if version.Parsed() {
        fmt.Println("5e")
        os.Exit(1)
    }
    if list.Parsed() {
        flag.PrintDefaults()
        os.Exit(1)
    }
}

Результаты:

$cli-tool list
$

(без команд печати.)

Я думаю, что это вытягивая из списка команду, а не все базовые команды. Я ожидаю, что он напечатает «версию» и «список», но ничего не печатает. Есть ли способ, которым я могу настроить это, чтобы «PrintDefaults» всегда ссылался на родительскую команду?

Заранее спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...