sshuttle/ui-macos/askpass.py

32 lines
664 B
Python
Raw Normal View History

#!/usr/bin/env python
import sys, os, re, subprocess
prompt = ' '.join(sys.argv[1:2]).replace('"', "'")
if 'yes/no' in prompt:
print "yes"
sys.exit(0)
script="""
tell application "Finder"
activate
display dialog "%s" \
with title "Sshuttle SSH Connection" \
default answer "" \
with icon caution \
with hidden answer
end tell
""" % prompt
p = subprocess.Popen(['osascript', '-e', script], stdout=subprocess.PIPE)
out = p.stdout.read()
rv = p.wait()
if rv:
# if they press the cancel button, it returns nonzero
sys.exit(1)
g = re.match("text returned:(.*), button returned:.*", out)
if not g:
sys.exit(2)
print g.group(1)