1
- #! /bin/bash
1
+ #! /bin/bash
2
+
3
+ _lazy_connect_config_dir=~ /.config/lazy-connect
4
+ _lazy_connect_project_dir=~ /.lazy-connect
2
5
3
6
function _lazy_connect_init() {
4
- config_dir=~ /.config/lazy-connect
5
7
echo -n " Secret Key: "
6
8
read -s secret_key
7
9
echo " **********"
8
- echo $secret_key > $config_dir /secret
10
+ echo $secret_key > $_lazy_connect_config_dir /secret
11
+ _lazy_connect_vpn_refresh
12
+ }
9
13
14
+ function _lazy_connect_vpn_refresh() {
15
+ local backup_file=/tmp/lazy-connect-vpns-` date +%-H-%M-%S-%F`
16
+ [ -f $_lazy_connect_config_dir /vpns ] && cp $_lazy_connect_config_dir /vpns $backup_file
10
17
osascript << EOF |
11
18
tell application "System Events"
12
19
tell process "SystemUIServer"
@@ -27,10 +34,11 @@ function _lazy_connect_init() {
27
34
end tell
28
35
end tell
29
36
EOF
30
- tr , ' \n' | sed ' s/ Connect/Connect /g' > $config_dir /vpns
37
+ tr ' , ' ' \n' | sed ' s/^[[:space:]]/ /g' > $_lazy_connect_config_dir /vpns
31
38
32
- echo " VPN List:"
33
- cat $config_dir /vpns | nl
39
+ [ -f $backup_file ] && echo -e " \nDiff:\n$( diff -y $backup_file $_lazy_connect_config_dir /vpns) "
40
+ echo -e " \nVPN List:"
41
+ cat $_lazy_connect_config_dir /vpns | nl
34
42
}
35
43
36
44
function _lazy_connect_usage() {
@@ -44,6 +52,7 @@ lazy-connect - Shell function to fuzzy search an IPSec VPN by name
44
52
-i - Initialize lazy-connect.
45
53
Stores the secret and VPN list to ~/.config/lazy-connect/
46
54
-u - Update lazy-connect
55
+ -r - Refresh vpn list in ~/.config/lazy-connect
47
56
-h - Show this help
48
57
EOF
49
58
}
78
87
}
79
88
80
89
function _lazy_connect_update() {
81
- lazy_connect_dir=~ /.lazy-connect
82
- git -C $lazy_connect_dir pull origin master
90
+ git -C $_lazy_connect_project_dir pull origin master
83
91
echo -e " \n\nRun the below command or restart your shell."
84
- echo " $ source $lazy_connect_dir /lazy-connect.sh"
92
+ echo " $ source $_lazy_connect_project_dir /lazy-connect.sh"
85
93
}
86
94
87
95
function lazy-connect() {
88
96
local OPTIND
89
- config_dir=~ /.config/lazy-connect
90
- mkdir -p $config_dir
97
+ mkdir -p $_lazy_connect_config_dir
91
98
92
- while getopts " ihu " opt; do
99
+ while getopts " iruh " opt; do
93
100
case $opt in
94
101
h)
95
102
_lazy_connect_usage
@@ -99,6 +106,11 @@ function lazy-connect() {
99
106
_lazy_connect_init
100
107
return 0
101
108
;;
109
+ r)
110
+ echo " Refreshing VPN list..."
111
+ _lazy_connect_vpn_refresh
112
+ return 0
113
+ ;;
102
114
u)
103
115
_lazy_connect_update
104
116
return 0
@@ -116,8 +128,8 @@ function lazy-connect() {
116
128
esac
117
129
done
118
130
119
- secret=$( cat $config_dir /secret)
120
- vpn_name=$( cat $config_dir /vpns \
131
+ secret=$( cat $_lazy_connect_config_dir /secret)
132
+ vpn_name=$( cat $_lazy_connect_config_dir /vpns \
121
133
| fzf --height=10 --ansi --reverse)
122
134
[ -z " $vpn_name " ] || _lazy_connect " $vpn_name " " $secret "
123
- }
135
+ }
0 commit comments