hachiojipm #37 に行ってきました
昨日は hachiojipm に行ってきました。 pm なんだけど ruby や php の話が聞けて (かつ perl 文化圏の人間に分かるように話してもらえて) 最近非常に勉強させてもらってる集まりです。
LT のお題は editor だったので tcltk 関連とか頑張って出そうかとも 思ったのですが、いかんせん、手持ちのツール群はどっぷり業務特化してしまってて断念。
代わりに小ネタとして、先日 @stealthinu 氏との対話で取り上げた "dryrun"
( make -n
のように、「実際には実行せずに、何が起こるかだけを画面に出して終わる」)
オプションの、私がよく使う実装イディオムについて話してきました。
My Zsh idiom. How to write dryrun behavior in Zsh.
関数 "DO" が肝です。これは引数として渡されたコマンドを画面に出し、 オプション -n が指定されていればそこで終了、 通常は引数列全体をコマンドとして実行、というものです。
あとは「何が起こるか」に相当するコマンドの頭に "DO " と書き加えるだけです。
残念ながらこの方法はパイプラインや
dryrun は真面目に作ろうとすると変更箇所が増えて大変ですが、 この方法なら、プログラミングの手間がほとんど増えないので、 投下労力対効果が良くて非常に気に入っています。
DO の最後の実行のところを "$argv[@]" にしたほうが完璧ですが、 ここでは読みやすさ優先、ということで。