![](https://res.cloudinary.com/zenn/image/upload/s--CwqQS2i5--/co_rgb:222%2Cg_south_west%2Cl_text:notosansjp-medium.otf_37_bold:Masaki%2520Hara%2Cx_203%2Cy_98/c_fit%2Cco_rgb:222%2Cg_north_west%2Cl_text:notosansjp-medium.otf_70_bold:%25E3%2582%25B8%25E3%2583%25A7%25E3%2583%25BC%25E3%2582%25AF%25E3%2582%25B3%25E3%2583%259E%25E3%2583%25B3%25E3%2583%2589%2520%2522dont%2522%2520%25E3%2582%2592%25E4%25BD%259C%25E3%2581%25A3%25E3%2581%259F%2Cw_1010%2Cx_90%2Cy_100/g_south_west%2Ch_90%2Cl_fetch:aHR0cHM6Ly9saDMuZ29vZ2xldXNlcmNvbnRlbnQuY29tL2EtL0FPaDE0R2l3aEI4dTM5cFZyM09sWVFLcUU5Z1ozV2d3MHlsMS03cUZad0huYWc9czgwLWM=%2Cr_max%2Cw_90%2Cx_87%2Cy_72/v1627274783/default/og-base_z4sxah.png)
ジョークコマンド "dont" を作った
DRANK
dontコマンドを作ったので紹介します。Rustが入っていれば、以下のようにしてインストールできます。cargo install dont (ビルド済みのバイナリや各種ディストリビューション向けのパッケージは現時点では存在しません。貢献を歓迎します!) これは何?名前の通り、指定した処理を実行しないコマンドです。たとえば、dont mkdir foo はfooを作成しません。dontコマンドは必ずしも「何もしない」とは限りません。特定のパターンに対しては、ユーザーの意図を汲んで特別な処理が行われます。いくつかの例をreadmeに書いてあります。全てのパターンを知りたい人はソースコードを参照してください。 なぜこのタイミングで公開したのかエイプリルフールのネタにしようかなと思ったのですが、他のジョークの話題と食い合うのもな…… と思ったので早めに公開することにしました。 実装上の工夫基本的には出落ちで終わってしまう話ですが、実装上の工夫がいくつかあるので紹介していきます。 -- の処理本コマンドはコマンドラインパーサーclapを使っており、オプション引数を取ることができるようになっています。現状では --help や --version などのclapのデフォルトコマンドし…
1 comments
あらゆる面で勉強になる。おすすめ(?)