SRMのとき使ってるスクリプト
最近eclipse使ってコーディングするようになったけど、自分の貧弱な計算機ではeclipse上でプログラムをコンパイル、実行するのは重くてやってられない。なのでコンパイル、実行は端末上でやることにした(何でIDE使ってるんだっけ)。以下のファイルに適当に名前(check.pyとか)付けて実行権限もつけてやって、端末上で./check.py hoge.cppとかするとファイルが更新される度にコンパイル、実行をする。最適化はお好みで。
Runtime Errorのとき勝手にgdb開くようにしたいけど、なんか正常に終了できない。プロセス管理とかの知識が全くなくてアレ。そもそもgdb立ち上げるくらい自分でやれよと。
#!/usr/bin/python import subprocess import sys import os import time def compile(programFileName): return subprocess.call(['g++', '-g', programFileName])==0 def test(): return subprocess.call(['./a.out'])==0 def run(programFileName): mtime = 0 while(True): ctime = os.stat(programFileName).st_mtime if(mtime < ctime): mtime = ctime subprocess.call(['clear']) print('compiling ...') if not compile(programFileName): print('compile error') continue print('running ...') if not test(): subprocess.call(['gdb', './a.out']) continue print('finished') time.sleep(1) if __name__ == '__main__': run(sys.argv[1])