autoup (1648B)
1 #!/bin/sh 2 3 usage() { 4 printf "usage: %s [-p|-f|-t] file" "$(basename "$0")" 5 exit 1 6 } 7 8 server="parazyd.org" 9 webroot="/home/parazyd/public_html/parazyd.org/pub" 10 webdir="dev/random" 11 12 case "$(basename "$0")" in 13 memecache) 14 webdir="memecache" 15 ;; 16 esac 17 18 case "$1" in 19 -p) 20 webdir="tmp/priv" 21 shift 22 ;; 23 -f) 24 webdir="tmp/photo" 25 shift 26 ;; 27 -t) 28 webdir="tmp" 29 shift 30 ;; 31 esac 32 33 [ -n "$1" ] || usage 34 35 filename="$(basename "$1")" 36 37 case "$filename" in 38 *scrot*|mpv-shot*) 39 webdir="tmp/screenshots" 40 num="$(ssh "$server" find "$webroot/$webdir" -type f | sort | tail -n1)" 41 num="$(printf "%s" "$num" | tr -d '[a-z]./_')" 42 num="$(e "${num}+1")" 43 44 if [ "$num" -lt 100 ]; then 45 num="000${num}" 46 elif [ "$num" -lt 1000 ]; then 47 num="00${num}" 48 elif [ "$num" -lt 10000 ]; then 49 num="0${num}" 50 fi 51 52 filename="screenshot${num}.${filename##*.}" 53 ;; 54 esac 55 56 scp "$1" "${server}:${webroot}/${webdir}/${filename}" || exit 1 57 58 if [ "$webdir" = memecache ]; then 59 oldmemes="$(hurl gopher://$server/0/pub/$webdir/memes.meme)" 60 memefile="$(mktemp)" 61 t="$(mktemp)" 62 chmod 644 "$memefile" 63 64 printf "%s\n" "$oldmemes" | grep -v ^meme2 > "$t" 65 printf "#%s gopher://%s/%s/pub/%s/%s %s\n" \ 66 "$(basename "$filename" | cut -d. -f1)" \ 67 "${server}" "$(ext2gopher "$filename")" \ 68 "${webdir}" "$(basename "$filename")" \ 69 "$(sha512sum "$filename" | cut -d' ' -f1)" >> "$t" 70 71 printf "meme2\n" > "$memefile" 72 sort "$t" >> "$memefile" 73 74 scp "$memefile" "${server}:${webroot}/${webdir}/memes.meme" 75 rm -f "$memefile" "$t" 76 fi 77 78 printf "https://%s/pub/%s/%s\n" "$server" "$webdir" "$filename" 79 printf "gopher://%s/%s/pub/%s/%s\n" "$server" "$(ext2gopher "$filename")" \ 80 "$webdir" "$filename"