我正在编写一个小命令行 todo 应用程序,它具有通用的类 git 界面。
它有几个可以执行的任务:add
, list
, complete
, ... 所有这些都应该可以通过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 所做的)。后者似乎更易于维护,但更难将全局选项传递给任务可执行文件。
有没有关于这个主题的文献?