最近はよくCLIのツールを作る。CLIツールと言えばオプションの解析処理だ。実際は最近だと何でもかんでもサブコマンドで作っていくから、サブコマンドの指定、グローバルオプション、サブコマンドごとのオプション、という解析が必要になる。
古くはGNU getoptの一強という時代があった。C言語だと今でもこいつなんじゃないかな。ただサブコマンドを書けないんじゃないかと思う。CやC++を使ってた頃はサブコマンド作る習慣がなかったもので…
時代は下り、数年前だとRubyのthorかGolangのcodegangsta(現urfave。どっちにしてもすごい名前だね)のcliをよく使っていた。いずれもサブコマンドを快適に使える。ついでにサブコマンドのみを使ってサブコマンドやオプションを補完してくれるREPLまで用意してくれればいいのだけど、、、と思って作ったのが→ github.com/wtnb75/go-cmdrepl だが、これcodegangsta時代のやつだな。今度urfaveに変えとこう。