annotate bash_command_executer.py @ 9:32b2ed082d0c draft

Uploaded
author gkumar09
date Wed, 23 Sep 2015 15:22:38 -0400
parents e40d92918044
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
8
e40d92918044 Uploaded
gkumar09
parents:
diff changeset
1 #!/usr/bin/env python
e40d92918044 Uploaded
gkumar09
parents:
diff changeset
2
e40d92918044 Uploaded
gkumar09
parents:
diff changeset
3
e40d92918044 Uploaded
gkumar09
parents:
diff changeset
4 import sys, subprocess, os
e40d92918044 Uploaded
gkumar09
parents:
diff changeset
5
e40d92918044 Uploaded
gkumar09
parents:
diff changeset
6 def stop_err( msg ):
e40d92918044 Uploaded
gkumar09
parents:
diff changeset
7 sys.stderr.write( "%s\n" % msg )
e40d92918044 Uploaded
gkumar09
parents:
diff changeset
8 sys.exit()
e40d92918044 Uploaded
gkumar09
parents:
diff changeset
9
e40d92918044 Uploaded
gkumar09
parents:
diff changeset
10 def __main__():
e40d92918044 Uploaded
gkumar09
parents:
diff changeset
11 # Get command-line arguments
e40d92918044 Uploaded
gkumar09
parents:
diff changeset
12 args = sys.argv
e40d92918044 Uploaded
gkumar09
parents:
diff changeset
13 # Remove name of calling program, i.e. ./stderr_wrapper.py
e40d92918044 Uploaded
gkumar09
parents:
diff changeset
14 args.pop(0)
e40d92918044 Uploaded
gkumar09
parents:
diff changeset
15
e40d92918044 Uploaded
gkumar09
parents:
diff changeset
16 # If there are no arguments left, we're done
e40d92918044 Uploaded
gkumar09
parents:
diff changeset
17 if len(args) == 0:
e40d92918044 Uploaded
gkumar09
parents:
diff changeset
18 return
e40d92918044 Uploaded
gkumar09
parents:
diff changeset
19
e40d92918044 Uploaded
gkumar09
parents:
diff changeset
20 # If one needs to silence stdout
e40d92918044 Uploaded
gkumar09
parents:
diff changeset
21 #args.append( ">" )
e40d92918044 Uploaded
gkumar09
parents:
diff changeset
22 #args.append( "/dev/null" )
e40d92918044 Uploaded
gkumar09
parents:
diff changeset
23
e40d92918044 Uploaded
gkumar09
parents:
diff changeset
24 cmdline = " ".join(args)
e40d92918044 Uploaded
gkumar09
parents:
diff changeset
25
e40d92918044 Uploaded
gkumar09
parents:
diff changeset
26
e40d92918044 Uploaded
gkumar09
parents:
diff changeset
27 try:
e40d92918044 Uploaded
gkumar09
parents:
diff changeset
28 # Run program
e40d92918044 Uploaded
gkumar09
parents:
diff changeset
29 err_capture = open("stderr.txt", 'w')
e40d92918044 Uploaded
gkumar09
parents:
diff changeset
30 proc = subprocess.Popen( args=cmdline, shell=True, stderr=err_capture, stdout=sys.stdout )
e40d92918044 Uploaded
gkumar09
parents:
diff changeset
31 returncode = proc.wait()
e40d92918044 Uploaded
gkumar09
parents:
diff changeset
32 err_capture.close()
e40d92918044 Uploaded
gkumar09
parents:
diff changeset
33
e40d92918044 Uploaded
gkumar09
parents:
diff changeset
34
e40d92918044 Uploaded
gkumar09
parents:
diff changeset
35 if returncode != 0:
e40d92918044 Uploaded
gkumar09
parents:
diff changeset
36 raise Exception
e40d92918044 Uploaded
gkumar09
parents:
diff changeset
37
e40d92918044 Uploaded
gkumar09
parents:
diff changeset
38 except Exception:
e40d92918044 Uploaded
gkumar09
parents:
diff changeset
39 # Running Grinder failed: write error message to stderr
e40d92918044 Uploaded
gkumar09
parents:
diff changeset
40 err_text = open("stderr.txt").readlines()
e40d92918044 Uploaded
gkumar09
parents:
diff changeset
41 stop_err( "ERROR:\n" + "\n".join(err_text))
e40d92918044 Uploaded
gkumar09
parents:
diff changeset
42
e40d92918044 Uploaded
gkumar09
parents:
diff changeset
43
e40d92918044 Uploaded
gkumar09
parents:
diff changeset
44 if __name__ == "__main__": __main__()