forked from raycast/script-commands
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathpulse-secure-resume.applescript
executable file
·89 lines (72 loc) · 1.92 KB
/
pulse-secure-resume.applescript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
#!/usr/bin/osascript
# Dependencies:
# Pulse Secure: https://www.pulsesecure.net/
# Required parameters:
# @raycast.schemaVersion 1
# @raycast.title Resume
# @raycast.mode silent
# Optional parameters:
# @raycast.packageName Pulse Secure
# @raycast.icon images/pulse-secure.png
# Documentation:
# @raycast.author Jakub Lanski
# @raycast.authorURL https://github.com/jaklan
# @raycast.description Resume the suspended connection.
on run argv
### End of configuration ###
try
if not trayIsRunning() then error "Pulse Secure tray is not running"
resume()
return
on error errorMessage
closeMenu()
return errorMessage
end try
end run
### Functions ###
on resume()
openMenu()
tell application "System Events" to tell process "PulseTray"
tell menu 1 of menu bar item 1 of menu bar 2
if name of menu item 3 contains "Suspended" then
tell (first menu item whose value of attribute "AXMenuItemMarkChar" is " ")
click
tell menu 1
if value of attribute "AXEnabled" of menu item "Resume" then
click menu item "Resume"
else
error "Menu item \"Resume\" is not active"
end if
end tell
end tell
else
error "No suspended connection"
end if
end tell
end tell
end resume
on trayIsRunning()
return application "PulseTray" is running
end trayIsRunning
on menuIsOpen()
tell application "System Events" to tell process "PulseTray"
return menu 1 of menu bar item 1 of menu bar 2 exists
end tell
end menuIsOpen
on openMenu()
set killDelay to 0
repeat
tell application "System Events" to tell process "PulseTray"
if my menuIsOpen() then return
ignoring application responses
click menu bar item 1 of menu bar 2
end ignoring
end tell
set killDelay to killDelay + 0.1
delay killDelay
do shell script "killall System\\ Events"
end repeat
end openMenu
on closeMenu()
if menuIsOpen() then tell application "System Events" to key code 53
end closeMenu