終了コードを反転させるプログラム

30分プログラム、その434。終了コードを反転させるプログラムを書いてみた。

今、書いてるプログラムの単体テストの結果が長すぎるので、grepで必要な情報だけ取り出している。

./test/runner | grep FAIL

でも、これだと失敗したときの終了コードが0で、成功した場合に1になってしまう。というわけで、終了コードを反転させるプログラムを書いてみた。qmailには同等のコマンドがあるらしい。

使い方

# 成功するコマンドだと、終了コードが1
$ python except.py echo hoge; echo $?
hoge
1

# 失敗するコマンドだと、終了コードが0
$ python except.py ls /not/exist
ls: cannot access /not/exist: No such file or directory; echo $?
0

ソースコード

import sys
import os

exit(not os.spawnvp(os.P_WAIT,sys.argv[1],sys.argv[1:]))