annotate python/logoutput.py @ 700:2a3323626bcf

wfm
author Jeff Hammel <k0scist@gmail.com>
date Wed, 13 Aug 2014 11:24:09 -0700
parents d7afa7a0ea3e
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
511
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
1 #!/usr/bin/env python
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
2
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
3 """
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
4 execute a command and log its output to a file
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
5 """
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
6
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
7 import sys
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
8 from subprocess import list2cmdline, STDOUT
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
9 from subprocess import check_output as call
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
10
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
11 def main(args=sys.argv[1:]):
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
12 """CLI"""
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
13
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
14 usage = '%prog outputfile command [args]'
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
15 usage += '\n' + __doc__
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
16 if args < 2:
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
17 print 'Usage: ' + usage
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
18 sys.exit(1)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
19
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
20 path = args.pop(0)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
21 commandline = list2cmdline(args)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
22
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
23 with file(path, 'w') as w:
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
24 output = call(args, stderr=STDOUT)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
25 w.write('\n\n'.join([commandline, output]))
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
26
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
27 if __name__ == '__main__':
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
28 main()