summaryrefslogtreecommitdiff
path: root/paste-image-to-file
diff options
context:
space:
mode:
Diffstat (limited to 'paste-image-to-file')
-rwxr-xr-xpaste-image-to-file29
1 files changed, 29 insertions, 0 deletions
diff --git a/paste-image-to-file b/paste-image-to-file
new file mode 100755
index 0000000..57887ed
--- /dev/null
+++ b/paste-image-to-file
@@ -0,0 +1,29 @@
+#!/bin/bash
+
+set -euo pipefail
+
+find_clipboard_image_mime_type() {
+ xclip -selection clipboard -t TARGETS -o | grep '^image/' | head -1 || true
+}
+
+save_clipboard_image_to_file() {
+ mime="$1"
+ outdir="$2"
+ extension=${mime#*/}
+ date=$(date +%F-%R)
+ template="clipboard-$date-XXXX"
+ filename=$(mktemp --tmpdir="$outdir" --suffix ".$extension" -t "$template")
+ xclip -selection clipboard -t "$mime" -o >"$filename"
+ echo "$filename"
+}
+
+main() {
+ mime=$(find_clipboard_image_mime_type)
+ if [ -z "$mime" ]; then
+ echo No image in cliboard >&2
+ exit 1
+ fi
+ save_clipboard_image_to_file "$mime" "$PWD"
+}
+
+main "$@"