1import glob 2import subprocess 3import os 4import sys 5 6langs = ["python","octave"] 7 8if len(sys.argv)>1: 9 langs = sys.argv[1:] 10 11success = True 12 13for lang in langs: 14 print("%s snippets" % lang) 15 snippets = glob.glob('snippets/*.%s.in' % lang) 16 for f in snippets: 17 out_file = f.replace("in","out") 18 with open(f.replace("in","out"), 'w') as myoutput: 19 if lang == "python": 20 args = ["python",f] 21 if lang == "octave": 22 args = ["octave-cli","--eval","try,run('%s'),catch e,e.message,exit(1),end" % f] 23 24 p = subprocess.Popen(args,stdout=myoutput, stderr=myoutput) 25 p.wait() 26 if p.returncode!=0: 27 print(("="*5) + f) 28 print(open(f,'r').read()) 29 print("="*50) 30 print(open(out_file,'r').read()) 31 success = False 32 print("Processed %d snippets" % len(snippets)) 33 34if not success: 35 os.exit(1) 36