Дизайн интерфейса командной строки с базовыми параметрами и подкомандами - PullRequest
4 голосов
/ 06 июля 2011

Я пытаюсь разработать интерфейс командной строки для инструмента, который пишу.Я перебираю интерфейс, похожий на инструмент fab от Fabric, и такой, как инструмент командной строки svn.

fab Сообщение об использовании:

Usage: fab [options] <command>[:arg1,arg2=val2,host=foo,hosts='h1;h2',...] ...

svn 'Сообщение об использовании:

usage: svn <subcommand> [options] [args]

Обратите внимание, что svn также поддерживает две опции --version и --quiet (по крайней мере ту, которую я использую).

Мои вопросы:

  1. Является ли конструкция fab cli (с несколькими командами, каждая из которых может иметь аргументы) общей для инструментов командной строки?Мне кажется, что инструмент svn cli более часто используется (но не уверен).
  2. Было бы просто реализовать fab's cli, используя plac (или argparse)?
  3. ЕслиЯ решил пойти с SVN Cli, это может быть реализовано с помощью Plac?Мне нравится plac, хотя я не смог понять, как добавить опции в инструмент напрямую, вместо подкоманд.Это, безусловно, может быть реализовано с использованием argparse .

PS: единственная причина, по которой мне нравится fab, заключается в том, что можно выполнить несколько задач за один шаг, однако простота реализации мояглавная проблема

1 Ответ

4 голосов
/ 06 июля 2011
  1. путь подрывной деятельности более стандартный.
  2. Возможно, нет.
  3. Вы можете резать масло ручным топором.

Если вы хотите упроститьдокументация и использование, идти с путём SVN.Я могу понять, почему способ fab кажется привлекательным, это логично для программиста.Но на самом деле это сложно и запутано для пользователей.

Plac выглядит круто, но вам нужно его установить.Ваши пользователи тоже.

Мне нравится следовать простому правилу, когда дело доходит до разработки программного обеспечения: делайте это простым и стандартным, используйте передовые технологии, когда вам действительно нужно .Ретро-совместимость должна быть достигнута, когда это возможно.

Тем не менее, вы просто дурачитесь и не планируете распределять свою работу, а затем продолжайте в том же духе и используя flac;).

...