Merge branch 'master' of ssh://git.slaskete.net/srv/git/einar-bin
[einar-bin] / screenshot.sh
1 #!/bin/bash
2 # A quick and dirty script to take a screenshot, upload it via scp
3 # and put a link to it in the clipboard for easy pasting to i.e. IRC.
4 # It assumes a lot of things, e.g. that ssh to the target host has
5 # been set up with a working private key, and that xclip and
6 # gnome-screenshot is installed.
7 #
8 # If all you have is a hammer, everything looks like a nail.
9
10 # Settings
11 REMOTEUSER="einar"
12 REMOTEHOST="wowbagger.slaskete.net"
13 REMOTEPATH="/var/www/eina.rjh.im/screenshots/"
14 LOCALPATH="${HOME}/ownCloud/Screenshots/"
15 URLBASE="https://eina.rjh.im/screenshots"
16
17 function errcho() {
18 >&2 echo -e "$@"
19 }
20
21 function take_screenshot() {
22 FILENAME="$(tr -dc 'a-zA-Z0-9' < /dev/urandom | fold -w 6 | head -n 1).png"
23 gnome-screenshot -f "${LOCALPATH}/${FILENAME}" -p "$@"
24 scp -q "${LOCALPATH}/${FILENAME}" "${REMOTEUSER}@${REMOTEHOST}:${REMOTEPATH}"
25 echo -n "${URLBASE}/${FILENAME}"|xclip -selection p
26 echo -n "${URLBASE}/${FILENAME}"|xclip -selection c
27 notify-send -i applets-screenshooter "screenshot.sh" "Screenshot published to ${URLBASE}/${FILENAME}"
28 }
29
30 function show_error() {
31 errcho "Please use one of: -w, --window, -a, --area, -s, --selection,"
32 errcho " -f, --full or no argument at all."
33 exit 1
34 }
35
36 case ${1} in
37 -w|--window)
38 take_screenshot -w -b -e shadow
39 ;;
40 -a|--area|-s|--selection)
41 take_screenshot -a
42 ;;
43 ""|-f|--full)
44 take_screenshot
45 ;;
46 *)
47 show_error
48 ;;
49 esac
50