我正在尝试为我正在编写的工具开发命令行界面。我在类似于 Fabric 的fab
工具的界面和类似于 svn 的命令行工具的界面之间折腾。
fab
的使用信息:
Usage: fab [options] <command>[:arg1,arg2=val2,host=foo,hosts='h1;h2',...] ...
svn
的使用信息:
usage: svn <subcommand> [options] [args]
请注意,svn
它还支持两个选项--version
和--quiet
(至少我正在使用的一个)。
我的问题是:
- fab 的 cli(具有多个命令,每个命令都可以有参数)设计在命令行工具中是否通用?对我来说,svn 工具的 cli 似乎更常用(虽然不确定)。
- 使用plac(或 argparse)实现 fab 的 cli 会很简单吗?
- 如果我决定使用 svn 的 cli,可以使用 plac 来实现吗?我喜欢 plac,尽管我无法弄清楚如何直接向工具添加选项,而不是子命令。它绝对可以使用argparse来实现。
PS:fab 的 cli 吸引我的唯一原因是可以一步完成多项任务,但易于实施是我主要关心的问题