diff options
Diffstat (limited to 'bin/up.sh')
-rw-r--r-- | bin/up.sh | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/bin/up.sh b/bin/up.sh new file mode 100644 index 00000000..1ca34a1c --- /dev/null +++ b/bin/up.sh @@ -0,0 +1,58 @@ +#!/bin/sh +set -eu + +readonly Host='temp.causal.agency' + +upload() { + local src ext ts rand url + src=$1 + ext=${src##*.} + ts=$(date +'%s') + rand=$(openssl rand -hex 4) + url=$(printf '%s/%x%s.%s' "$Host" "$ts" "$rand" "$ext") + scp -q "$src" "${Host}:/usr/local/www/${url}" + echo "https://${url}" +} + +temp() { + temp=$(mktemp -d) + trap rmtemp EXIT +} +rmtemp() { + rm -r "$temp" +} + +uploadText() { + temp + cat > "${temp}/input.txt" + upload "${temp}/input.txt" +} + +uploadHi() { + temp + hi -f html -o document,tab=4 "$@" > "${temp}/hi.html" + upload "${temp}/hi.html" +} + +uploadScreen() { + temp + screencapture -i "$@" "${temp}/capture.png" + pngo "${temp}/capture.png" || true + upload "${temp}/capture.png" +} + +args=$(getopt 'hs' $*) +set -- $args +for opt; do + case "$opt" in + (-h) shift; fn=uploadHi;; + (-s) shift; fn=uploadScreen;; + (--) shift; break;; + esac +done +[ $# -eq 0 ] && : ${fn:=uploadText} +: ${fn:=upload} + +url=$($fn "$@") +echo "$url" | pbcopy || true +echo "$url" |