mirror of
https://github.com/notwa/rc
synced 2024-11-05 03:19:02 -08:00
67 lines
1.4 KiB
Bash
Executable file
67 lines
1.4 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
: ${SC_DBD:="/home/$USER/Dropbox"}
|
|
: ${SC_DBS:="$SC_DBD/Public/screenshots"}
|
|
: ${SC_DBT:="$SC_DBD/Public/temp"}
|
|
: ${SC_DOM:="http://eaguru.guru"}
|
|
|
|
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
|
|
|
|
cp "$fn" "$SC_DBS/"
|
|
sc_shorten "$short"
|
|
uri_encode "$REPLY"
|
|
REPLY="$SC_DOM/s/$REPLY"
|
|
return 0
|
|
}
|
|
|
|
copy_tmp() {
|
|
local fn="$1"
|
|
local dlen=${#SC_DBT}
|
|
if [ "${fn:0:dlen}" != "${SC_DBT}" ]; then
|
|
cp "$fn" "$SC_DBT/"
|
|
fi
|
|
local short="$(basename "$fn")"
|
|
|
|
uri_encode "$short"
|
|
REPLY="$SC_DOM/t/$REPLY"
|
|
return 0
|
|
}
|
|
|
|
sc() {
|
|
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
|
|
}
|
|
|
|
sc "$@"
|