Screenshot'n'Upload
Dieses kleine Script startet scrot -s, um einen Screenshot von einem Bereich des Monitors anzufertigen. Anschließend wird das Bild per ssh auf den eigenen Server hochgeladen, wobei der Dateiname durch den eigenen SHA256-Hash ersetzt wird. Die URL, unter der das Bild nun abrufbar ist, wird in die Zwischenablage geschrieben und kann schnell geteilt werden.
#!/usr/bin/env bash
# bash strict mode
set -euo pipefail
IFS=$'\n\t'
# Ending of temporary filename decides filetype
filename=$(mktemp tmp.XXXXXXXXXX.png)
ext=${filename##*.}
function finish {
rm -f "$filename"
unset IFS
}
trap finish EXIT
sleep 0.1 # scrot is not able to grab the pointer without this sleep
notify-send --urgency=low "Screenshot ready" "Select area to screenshot and upload."
scrot -s ${filename}
shasum=$(sha256sum ${filename} | awk '{print $1}')
rsync --chmod=g-rwx,o=r "${filename}" "wgmd:public_html/share/${shasum}.${ext}"
url="https://share.wgmd.de/${shasum}.${ext}"
notify-send --urgency=low "Screenshot uploaded" "Upload successful.\nUse clipboard to access URL."
echo ${url} | xclip -selection clipboard