Как передать значения флага подкомандам в golang urfave cli - PullRequest
0 голосов
/ 27 февраля 2019

Я использую urfave на https://github.com/urfave/cli, чтобы создать CLI с двумя подкомандами.Я могу создать CLI с подкомандой, но я действительно не знаю, как определить флаги.В чем разница между глобальным флагом и локальным флагом?

1 Ответ

0 голосов
/ 27 февраля 2019

Каждая команда может дополнительно указывать «подкоманду».Подкоманда имеет тип Command, что позволяет объединять / составлять команды вместе.

Для достижения чего-то вроде:

cli-tool command1 command2 --command2flag

вы можете иметь структуру команд, такую ​​как:

app := &cli.App{
    //...
    Commands: []*cli.Command{
      {
        Name:    "command1",
        Usage:   // ...
        Action:  //...
        SubCommand: []cli.Command{
           {
               Name: "command2"
               Flags: []cli.Flag{
                  cli.StringFlag{
                     Name: "command2flag"
                     // ...
                  },
               },
           },
        },
      },
    //...
    }

Здесь вы можете видеть, что command2 вложена в подкоманды command1.А флаги для команды2 будут применяться только к команде2.Это пример локального флага.

Глобальные флаги будут применяться к каждой команде и подкоманде.Это может быть полезно для некоторых конфигураций, которые может понадобиться инструменту cli для всех команд.например, адрес сервера для общения и т. д.

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