Mercurial > hg > config
view python/sshdiff.py @ 650:9cb40c01c10a
illustrate downloading a package and rerunning via exec
author | Jeff Hammel <k0scist@gmail.com> |
---|---|
date | Mon, 24 Mar 2014 13:54:24 -0700 |
parents | c4aaaa6d9c13 |
children |
line wrap: on
line source
#!/usr/bin/env python """ diff files over ssh """ import os import subprocess import sys import tempfile from optparse import OptionParser def main(args=sys.argv[1:]): usage = "%prog host file" parser = OptionParser(usage=usage, description=__doc__) options, args = parser.parse_args(args) try: host, filename = args except ValueError: parser.print_usage() parser.exit(1) process = subprocess.Popen(["ssh", host, "cat", filename], stdout=subprocess.PIPE) stdout, stderr = process.communicate() fd, buffer = tempfile.mkstemp() os.write(fd, stdout) os.close(fd) subprocess.call(['diff', os.path.join(os.environ['HOME'], filename), buffer]) try: os.remove(buffer) except: pass if __name__ == '__main__': main()