Handle different devices
[einar-bin] / screenshot.sh
index 56ccf5bcf9f73a52d48535580bd64a2870198851..d9205477e96a7612ad3b190b0f7443cbe15a26ca 100755 (executable)
@@ -11,7 +11,7 @@
 RemoteUser="einar"
 RemoteHost="wowbagger.slaskete.net"
 RemotePath="/var/www/eina.rjh.im/screenshots/"
 RemoteUser="einar"
 RemoteHost="wowbagger.slaskete.net"
 RemotePath="/var/www/eina.rjh.im/screenshots/"
-LocalPath="${HOME}/ownCloud/Screenshots/"
+LocalPath="${HOME}/Pictures/Screenshots/"
 UrlBase="https://eina.rjh.im/g"
 
 function errcho() {
 UrlBase="https://eina.rjh.im/g"
 
 function errcho() {
@@ -19,9 +19,21 @@ function errcho() {
 }
 
 function take_screenshot() {
 }
 
 function take_screenshot() {
-  FileName="$(tr -dc 'a-zA-Z0-9' < /dev/urandom | fold -w 6 | head -n 1).png"
-  if [ "$@" = "clipboard" ]; then
-    xclip -out -selection clipboard -t image/png > "${LocalPath}/${FileName}" 2>/dev/null
+  FileID="$(tr -dc 'a-zA-Z0-9' < /dev/urandom | fold -w 6 | head -n 1)"
+  FileName="${FileID}.png"
+  if [ "$*" = "clipboard" ] || [ "$*" = "jpg" ]; then
+    xclip -out -selection clipboard -t image/png > "/tmp/${FileName}" 2>/dev/null
+    if [ "$(file -b --mime-type "/tmp/${FileName}")" == "image/png" ]; then
+      if [ "$*" = "jpg" ]; then
+        convert "/tmp/${FileName}" "/tmp/${FileID}.jpg"
+        rm "/tmp/${FileName}"
+        FileName="${FileID}.jpg"
+      fi
+      mv "/tmp/${FileName}" "${LocalPath}/"
+    else
+      rm "/tmp/${FileName}"
+      notify-send -i applets-screenshooter "screenshot.sh" "Tried to post image from clipboard, but found no image there."
+    fi
   else
     gnome-screenshot -f "${LocalPath}/${FileName}" -p "$@"
   fi
   else
     gnome-screenshot -f "${LocalPath}/${FileName}" -p "$@"
   fi
@@ -53,6 +65,9 @@ case ${1} in
   -c|--clipboard|-p|--paste)
     take_screenshot clipboard
     ;;
   -c|--clipboard|-p|--paste)
     take_screenshot clipboard
     ;;
+  -j|--jpg)
+    take_screenshot jpg
+    ;;
   *)
     show_error
     ;;
   *)
     show_error
     ;;