私はApache commons-cli v1.3にちょっと苦労していますが、次の問題に対する実用的な解決策をまだ見つけていません:
指定されたパラメーターに応じて、文字列を作成(またはローカルファイルから読み取り)、インラインで編集し、オプションで表示、ローカルファイルへの文字列の書き込み、またはHTTPリクエスト経由で送信するコマンドラインツールがありますサーバーに。
したがって、「作成」の場合は「c」、「読み取り」の場合は「r」、「編集」の場合は「e」(cli 経由)、表示の場合は「d」、「書き込み」の場合は「w」、および「 p" は「サーバーにプッシュ」
もちろん、いくつかの組み合わせは可能です。たとえば、この文字列を作成して、ファイルから読み書きすることなくプッシュできるようにする必要があります。また、プッシュせずに作成して書き込むことができるはずです...
したがって、パラメーターのセマンティクスは次のとおりです。
("c" OR ("r" ["e"])) ["d" "w" "p"]
明らかに、文字列が「作成」されるとき、それは「読み取り」されてはなりません。「c」reating するときは、cli-parser からのインタラクティブな入力を使用します。「読む」とき、ユーザーがcliからのインタラクティブな入力を介して「e」編集できるようにしたいと思います。残りのパラメータはオプションです。
次へ: 「読む」ときは、ファイル名/パスを指定する必要があります。また、「書く」ときはこれが必要です。とにかく、読み取るファイルと書き込む 2 番目のファイルを指定できるようにする必要があります。したがって、ファイル名には 2 つの引数があり、どちらもオプションです。
結果の構文は次のようになります。
tool -cp
tool -rp "filenametoread"
tool -rdwp "filenametoread" "filenametowrite"
tool -cw "filenametowrite"
等々。
私はここで少し迷っています。指定されたパラメーター (オプション) に基づいて必要とされる、ファイル名に 2 つの引数を持つように commons-cli を構成するにはどうすればよいですか? これは可能ですか?