类似git的界面的最佳方法

时间:2012-09-15 19:19:45

标签: c++ git user-interface executable command-line-interface

我正在编写一个小命令行待办事项应用程序,它具有类似git的通用接口。

它可以执行多项任务:addlistcomplete,...所有这些都可以通过todo <task>界面访问。例如todo list

与git一样,其中一些任务采用变量或选项,todo应用程序也可以选择(适用于任何类型的任务,例如配置文件的位置)。

最终应该能够写出类似的东西:

todo -c ~/.config/todorc add --desc "walk the dog"

请注意这里的事情顺序:在实际任务之前给出(并且只能给出)的全局选项。然后是典型呼叫的骨架:

todo [global options] <task> [task options/arguments]

我正在用C ++编写这个项目,基本的后端库已经完成了。我正在试图弄清楚如何编写用户界面。

我应该使用一个分别处理每个任务的大main,还是应该将程序拆分成几个子程序,并从一个简单的shell脚本调用它们(如果我是正确的话,这就是git所做的)。后者似乎更容易维护,但却使得将全局选项传递给任务可执行文件变得更加困难。

有关于这个主题的文献吗?

1 个答案:

答案 0 :(得分:2)

您写的是命令行应用程序。然后我会选择一个二进制文件。最简单的方法可能是使用Boost.Program_options

从我的观点来看,限制某些选项的位置是一个非常糟糕的主意。它会使大多数用户感到困惑。最糟糕的情况是位置改变选项的语义。 gcc使用-l选项执行此操作,10年后仍然发现新用户抱怨他们的程序无法正确链接。