summaryrefslogtreecommitdiff
path: root/paste-image-to-file
blob: 57887ed1789a44b80fdda2a9fa9b51ee40359bf4 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
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 "$@"