summaryrefslogtreecommitdiffstats
path: root/ui-macos/askpass.py
diff options
context:
space:
mode:
Diffstat (limited to 'ui-macos/askpass.py')
-rw-r--r--ui-macos/askpass.py28
1 files changed, 28 insertions, 0 deletions
diff --git a/ui-macos/askpass.py b/ui-macos/askpass.py
new file mode 100644
index 0000000..9690c0d
--- /dev/null
+++ b/ui-macos/askpass.py
@@ -0,0 +1,28 @@
+import sys, os, re, subprocess
+
+def askpass(prompt):
+ prompt = prompt.replace('"', "'")
+
+ if 'yes/no' in prompt:
+ return "yes"
+
+ 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:
+ return None
+ g = re.match("text returned:(.*), button returned:.*", out)
+ if not g:
+ return None
+ return g.group(1)