1
0
Fork 0
mirror of https://github.com/notwa/rc synced 2024-05-04 04:33:24 -07:00
rc/sh/sc
2022-03-06 13:13:40 -08:00

72 lines
1.6 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="$EA_DOMAIN/s/$REPLY"
return 0
}
copy_tmp() {
local fn="$1"
local short="$(basename "$fn")"
ea put "$fn" "$short"
uri_encode "$short"
REPLY="$EA_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="" f=
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 "$@"