mirror of
https://github.com/notwa/rc
synced 2024-11-05 02:39:03 -08:00
71 lines
1.7 KiB
Bash
Executable file
71 lines
1.7 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
# NO_ZSH
|
|
# YES_BASH
|
|
# NO_DASH
|
|
# NO_ASH
|
|
|
|
sc_shorten() {
|
|
REPLY="${1:2:2}${1:5:2}${1:8:2}${1:11:12}"
|
|
}
|
|
|
|
# http://stackoverflow.com/a/10797966
|
|
uri_encode() {
|
|
REPLY="$(echo -En "$@" | curl -Gso /dev/null -w %{url_effective} --data-urlencode @- "")"
|
|
REPLY="${REPLY:2}"
|
|
}
|
|
|
|
copy_scr() {
|
|
local fn="$1"
|
|
local short="$(basename $fn)"
|
|
local r='20\d\d-\d\d-\d\d_\d\d\d\d\d\d\d\d.(png|jpg)'
|
|
grep -Pq "$r" <<<"$short" || return 1
|
|
|
|
ea put "$fn" "$short"
|
|
sc_shorten "$short"
|
|
uri_encode "$REPLY"
|
|
REPLY="$_REMOTE_DOMAIN/s/$REPLY"
|
|
return 0
|
|
}
|
|
|
|
copy_tmp() {
|
|
local fn="$1"
|
|
local short="$(basename "$fn")"
|
|
|
|
ea put "$fn" "$short"
|
|
uri_encode "$short"
|
|
REPLY="$_REMOTE_DOMAIN/t/$REPLY"
|
|
return 0
|
|
}
|
|
|
|
sc() { ### @-
|
|
### upload given files to a webserver and return a direct link for sharing them.
|
|
### you'll want to tweak this if you use it yourself.
|
|
### this contains some extra logic for screenshots created by `scropt`.
|
|
###
|
|
### **TODO:** consider renaming because sc(1) already exists.
|
|
if [ -n "${ZSH_VERSION:-}" ]; then
|
|
# syntax is too different to bother tbh
|
|
echo "please run with bash"
|
|
return 1
|
|
fi
|
|
which xsel &>/dev/null || {
|
|
echo "please install xsel"
|
|
return 1
|
|
}
|
|
|
|
local clipboard=""
|
|
for f; do
|
|
f="$(readlink -f "$f")"
|
|
if [ ! -e "$f" ]; then
|
|
continue
|
|
fi
|
|
copy_scr "$f" || copy_tmp "$f"
|
|
clipboard="$clipboard"$'\n'"$REPLY"
|
|
done
|
|
xsel -b <<<"${clipboard:1}"
|
|
return 0
|
|
}
|
|
|
|
[ -n "${preload+-}" ] || . ~/sh/preload || exit 2
|
|
eval ${preload:-preload} ea
|
|
[ -n "${preload+-}" ] || sc "$@"
|