@@ -18,7 +18,7 @@ readonly ERR_UNSUPPORTED_OS=1
18
18
readonly ERR_INVALID_USAGE=2
19
19
readonly ERR_FILE_NOT_FOUND=3
20
20
21
- die () {
21
+ die () {
22
22
local message=" $1 "
23
23
local -i exit_code=" ${2:- 1} "
24
24
@@ -29,11 +29,23 @@ die () {
29
29
30
30
alias call=" eval"
31
31
32
- result () {
32
+ clipboard_copy () {
33
+ if [[ -n " $( type -t pbcopy) " ]]; then
34
+ pbcopy
35
+ elif [[ -n " $( type -t xsel) " ]]; then
36
+ xsel --clipboard --input
37
+ elif [[ -n " $( type -t xclip) " ]]; then
38
+ xclip -selection clipboard
39
+ else
40
+ :
41
+ fi
42
+ }
43
+
44
+ result () {
33
45
declare -p $* | sed " s/^declare /local /"
34
46
}
35
47
36
- upload () {
48
+ upload () {
37
49
local file=" $1 "
38
50
39
51
[[ -r " $file " ]] || die " File $file does not exist or is not accessible" $ERR_FILE_NOT_FOUND
@@ -56,7 +68,7 @@ upload () {
56
68
result upload_id upload_url upload_key
57
69
}
58
70
59
- shorten () {
71
+ shorten () {
60
72
local url=" $1 "
61
73
local -i ttl=" ${2:- 5} "
62
74
@@ -71,7 +83,7 @@ shorten () {
71
83
result shorturl_url shorturl_key shorturl_ttl
72
84
}
73
85
74
- delete () {
86
+ delete () {
75
87
local file
76
88
local upload_id
77
89
local upload_key
@@ -98,7 +110,7 @@ delete () {
98
110
rmdir " $WSHARE_HOME " 2> /dev/null || true
99
111
}
100
112
101
- cleanup () {
113
+ cleanup () {
102
114
[[ -d " $WSHARE_HOME " ]] || return
103
115
104
116
local ttl_dir
@@ -122,7 +134,7 @@ cleanup () {
122
134
fi
123
135
}
124
136
125
- share () {
137
+ share () {
126
138
local uri=" $1 "
127
139
local ttl=" ${2:- 5} "
128
140
@@ -141,7 +153,7 @@ share () {
141
153
mkdir -p " $db_dir "
142
154
local db_file=" $db_dir /$upload_id "
143
155
if [[ -n " $upload_key " ]]; then
144
- cat << - EOF > "$db_file "
156
+ cat > " $db_file " << - EOF
145
157
$upload_key
146
158
$shorturl_url
147
159
EOF
@@ -150,16 +162,16 @@ share () {
150
162
fi
151
163
fi
152
164
153
- echo -n " $shorturl_url " | pbcopy
165
+ echo -n " $shorturl_url " | clipboard_copy
154
166
155
167
echo " $shorturl_url "
156
168
}
157
169
158
- get_latest_version () {
170
+ get_latest_version () {
159
171
basename " $( curl -s -o /dev/null -I -w " %{redirect_url}" https://github.com/nikolay/wshare/releases/latest) "
160
172
}
161
173
162
- show_usage () {
174
+ show_usage () {
163
175
cat << -EOF
164
176
Usage: $( basename $0 ) COMMAND
165
177
@@ -172,12 +184,12 @@ show_usage () {
172
184
EOF
173
185
}
174
186
175
- usage () {
187
+ usage () {
176
188
show_usage
177
189
exit $ERR_INVALID_USAGE
178
190
}
179
191
180
- main () {
192
+ main () {
181
193
[[ $# -gt 0 ]] || usage
182
194
183
195
local command=" ${1:- } "
@@ -202,32 +214,32 @@ main () {
202
214
shift
203
215
share " $@ "
204
216
;;
205
- * )
217
+ ( * )
206
218
main --share " $@ "
207
219
;;
208
220
esac
209
221
}
210
222
211
- assignment () {
223
+ assignment () {
212
224
local variable=" ${1:- } "
213
225
local value=" ${2:- } "
214
226
215
227
echo " $variable =\" $value \" "
216
228
}
217
229
218
- do_install () {
230
+ do_install () {
219
231
mkdir -p " $( dirname " $WSHARE_BIN " ) "
220
232
rm -f " $WSHARE_BIN "
221
233
local self=" ${BASH_EXECUTION_STRING:- $(curl -sL git.io/ wshare)} "
222
234
echo " ${self/ $(assignment WSHARE_VERSION)/ $(assignment WSHARE_VERSION " $( get_latest_version) " )} " > " $WSHARE_BIN "
223
235
chmod +x " $WSHARE_BIN "
224
236
}
225
237
226
- check_install () {
238
+ check_install () {
227
239
[[ " $( type -t wshare) " == " file" ]]
228
240
}
229
241
230
- install () {
242
+ install () {
231
243
local os=" $( uname) "
232
244
case " $os " in
233
245
(Linux | Darwin)
@@ -256,7 +268,7 @@ install () {
256
268
fi
257
269
258
270
;;
259
- * )
271
+ ( * )
260
272
die " Unsupported OS: $os "
261
273
;;
262
274
esac
0 commit comments