一般的な git のようなインターフェイスを持つ小さなコマンド ライン todo アプリを作成しています。
実行できるいくつかのタスク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++ で作成しており、基本的なバックエンド ライブラリは完成しています。私は今、ユーザーインターフェイスを書く方法を理解しようとしています。
すべてのタスクを個別に処理する1つの大きなmain
ものを使用する必要がありますか、それともプログラムをいくつかのサブプログラムに分割し、それらを単純なシェルスクリプトから呼び出す必要があります(私が正しければgitが行うことです)。後者は保守が容易に思えますが、グローバル オプションをタスク実行可能ファイルに渡すのが難しくなります。
この件に関する文献はありますか?