我正在编写一个小型命令行待办事项应用程序,它具有类似于 git 的通用界面。
它可以执行多项任务:add
, list
, complete
,...所有这些都应该可以通过todo <task>
界面。例如todo list
.
与 git 一样,其中一些任务采用变量或选项,并且todo
应用程序还可以采用选项(适用于任何类型的任务,例如配置文件的位置)。
最终人们应该能够写出类似这样的东西:
todo -c ~/.config/todorc add --desc "walk the dog"
请注意这里的顺序:给出了全局选项(并且只能给出)before实际任务。典型调用的框架如下:
todo [global options] <task> [task options/arguments]
我正在用 C++ 编写这个项目,基本的后端库已经完成。我现在正在尝试弄清楚如何编写用户界面。
我应该使用一大main
分别处理每个任务,或者我应该将程序分成几个子程序并从一个简单的 shell 脚本调用它们(如果我是正确的,这就是 git 所做的)。后者似乎更容易维护,但使将全局选项传递给任务可执行文件变得更加困难。
有关于这个主题的文献吗?
你写它是为了little命令行应用程序。然后我会选择一个二进制文件。最简单的方法可能是使用Boost.Program_options http://www.boost.org/doc/libs/1_39_0/doc/html/program_options.html.
从我的角度来看,限制某些选项的位置是一个非常糟糕的主意。它会让大多数用户感到困惑。最坏的情况是位置改变选项的语义。gcc
这样做与-l
选项,十年后您仍然发现新用户抱怨他们的程序无法正确链接。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)