From 124ee6497e0defd44b9d215fcd7b37318e489fe7 Mon Sep 17 00:00:00 2001
From: Steffen Vogel <post@steffenvogel.de>
Date: Thu, 23 Apr 2015 20:50:30 +0200
Subject: contrib: add applescript support

---
 contrib/pass.applescript | 92 ++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 92 insertions(+)
 create mode 100644 contrib/pass.applescript

(limited to 'contrib')

diff --git a/contrib/pass.applescript b/contrib/pass.applescript
new file mode 100644
index 0000000..4720fff
--- /dev/null
+++ b/contrib/pass.applescript
@@ -0,0 +1,92 @@
+---------------------------------------------------------------------------------------------
+-- Applescript for easy invocation of 'pass'
+---------------------------------------------------------------------------------------------
+--
+-- Author: Steffen Vogel <post@steffenvogel.de>
+-- Tested with: OS X 10.10 Yosemite
+--
+-- Installation:
+--
+--   1. Copy this script to /Library/Scripts/pass.applescript
+--
+--   2. Use the Automator to create a service which starts the following AppleScript:
+--
+--        on run {input, parameters}
+--	      run script POSIX file "/Library/Scripts/pass.applescript"
+--        end run
+--
+--   3. Install the application 'Notifications Scripting' from:
+--        http://www.cooperative-fruitiere.com/notifications/NotificationsScripting.dmg
+--
+--   4. Go to 'System Settings' -> 'Keyboard' to create a short cut for the service
+--       you created before
+--   
+--   5. Go to 'System settings' -> 'Notifications' -> choose 'Notifications Scripting' 
+--       -> and switch from 'Banners' to 'Alerts'
+--
+---------------------------------------------------------------------------------------------
+
+-- Configuration
+property defPass : "root"
+property clearAfter : 45
+property shellPath : "/opt/local/bin:/usr/local/bin:$PATH"
+
+-- Translation
+set lang to user locale of (get system info)
+if (lang = "de_DE") then
+	set nTitle to "Password-store"
+	set nPrompt to "Welches Password wird ben�tigt?"
+	set nClear to "Vergesse"
+else -- if (lang = "en")
+	set nTitle to "Password-store"
+	set nPrompt to "Which password do you want?"
+	set nClear to "Forget"
+end if
+
+try
+	set entity to the text returned of (display dialog nPrompt default answer defPass buttons {"OK"} with title nTitle default button 1)
+	set pw to do shell script "export PATH=" & shellPath & "; pass " & entity
+	
+	set the clipboard to pw
+	
+	-- Wait until clipboard changed then close notification
+	repeat with secsLeft from 0 to clearAfter
+		if pw is equal to (the clipboard) then
+			tell application "Notifications Scripting"
+				set event handlers script path to (path to me)
+				display notification nTitle id "pass" message "Password copied to clipboard (" & (clearAfter - secsLeft) & " secs left)" action button nClear with has action button
+			end tell
+			delay 1
+		else
+			exit repeat
+		end if
+	end repeat
+on error errMsg
+	display dialog errMsg with title nTitle with icon stop
+end try
+
+-- Clear clipboard
+set the clipboard to ""
+closeNotifications()
+
+-- Handle click to notification:
+using terms from application "Notifications Scripting"
+	on notification activated
+		set the clipboard to ""
+	end notification activated
+end using terms from
+
+-- Close all Notifications
+on closeNotifications()
+	tell application "System Events"
+		tell process "NotificationCenter"
+			set theWindows to every window
+			repeat with i from 1 to number of items in theWindows
+				set this_item to item i of theWindows
+				try
+					click button 1 of this_item
+				end try
+			end repeat
+		end tell
+	end tell
+end closeNotifications
-- 
cgit v1.2.3