类似 git 界面的最佳方法

2024-03-13

我正在编写一个小型命令行待办事项应用程序,它具有类似于 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(使用前将#替换为@)

类似 git 界面的最佳方法 的相关文章

随机推荐