kinoppyd.dev

blog

products

accounts & contact

diffコマンドの exit code って、差分がなければ0、差分が有れば1、失敗したら2なんだね

posted at 2015-09-24 18:55:01 +0900 by kinoppyd

T/O

タイトルの通り

悲しみ

いま書いてるRubyのコードで、シェルコマンドを実行する必要がある場所は、Open3を介して実行するようにしているんだけど、Open3#capture3メソッドは(というか、Rubyのprocess.cが)exit codeが1の場合、success?メソッドをfalseで返すようにしているらしく、普通のコマンドと挙動が違う

shellコマンドの実行を共通化していると、diffコマンドだけこの特殊な挙動を切り分けなくてはいけなくて辛すぎて泣きそう

diffyとかのライブラリとは違い、ディレクトリ構造の違いを取得したいケースなので、つらい

補足

自分で確認していないけど、チャットでもらった情報だとcmpとdiff3もそうらしい