WindowsでPitの落とし穴(pit)にはまった
Pitという便利なツールを使うと、スクリプトとその設定(IDやパスワード)を分離することができ、うっかりパスワードを埋め込んだスクリプトを公開してしまうという、ありがちなミスを防ぐことができる。
gemで提供されているので、
gem install pit --remote
でインストールできる。簡単。
だけど、Pitを使う上でハマりやすいのが、環境変数 EDITOR を設定していないケース。
ふつう*nix系のOSだとたいていEDITOR環境変数に適当なエディタが設定されている場合が多いのであまり問題にならないかもしれないが、Windowsの場合は設定していない場合がほとんどなので、特にハマりやすいかもしれない。
自分はまんまとその落とし穴にハマってしまった。
とりあえず、以下のようにEDITOR環境変数を設定したらOKだった。(あえて、Windowsっぽいエディタということで秀丸を使ってみたけど問題なかった。当たり前か...)
ハマったのは、
最初"c:\program files\hidemaru\hidemaru.exe"とかで設定していたのが原因
irbで、
system("c:\program files\hidemaru\hidemaru.exe")
を実行すると、ちゃんと秀丸が起動できたのでこれで問題無いと考えたのが間違いだった。
どうも、system関数では引数を1つだけ渡した場合と、第2引数も渡した場合の挙動が違うらしく、
system("c:\program files\hidemaru\hidemaru.exe", "xxx")
だと起動に失敗する。
第2引数を使う場合は、DOS形式(最大8バイトまで)のディレクトリ名を指定しないとダメだった。
なので、タイトルは間違い。PitというかRubyの組み込みのsystem関数の落とし穴(pit)というのが正しいか...