diff options
author | Avery Pennarun <apenwarr@gmail.com> | 2011-02-07 00:32:16 -0800 |
---|---|---|
committer | Avery Pennarun <apenwarr@gmail.com> | 2011-02-07 17:18:30 -0800 |
commit | 1ca8aa5b891d01181a5d6a814631f6cf2cd08603 (patch) | |
tree | 623789207f26162fe8ab48769d09fe3fc5d9dfc9 | |
parent | a62975e0cebc41e4c4bb83571a83ebd0bf699763 (diff) |
server: workaround for idiotic ArchLinux renaming of python to python2.
First try running under python2, then python if that doesn't exist.
-rw-r--r-- | main.py | 2 | ||||
-rw-r--r-- | ssh.py | 11 |
2 files changed, 10 insertions, 3 deletions
@@ -54,7 +54,7 @@ l,listen= transproxy to this ip address and port number [127.0.0.1:0] H,auto-hosts scan for remote hostnames and update local /etc/hosts N,auto-nets automatically determine subnets to route dns capture local DNS requests and forward to the remote DNS server -python= path to python interpreter on the remote server [python] +python= path to python interpreter on the remote server r,remote= ssh hostname (and optional username) of remote sshuttle server x,exclude= exclude this subnet (can be used more than once) v,verbose increase debug message verbosity @@ -73,16 +73,23 @@ def connect(ssh_cmd, rhostport, python, stderr, options): if not rhost: - argv = [python, '-c', pyscript] + # ignore the --python argument when running locally; we already know + # which python version works. + argv = [sys.argv[1], '-c', pyscript] else: if ssh_cmd: sshl = ssh_cmd.split(' ') else: sshl = ['ssh'] + if python: + pycmd = "'%s' -c '%s'" % (python, pyscript) + else: + pycmd = ("P=python2; $P -V 2>/dev/null || P=python; " + "\"$P\" -c '%s'") % pyscript argv = (sshl + portl + ipv6flag + - [rhost, '--', "'%s' -c '%s'" % (python, pyscript)]) + [rhost, '--', pycmd]) (s1,s2) = socket.socketpair() def setup(): # runs in the child process |