dotfiles/.config/aerc/paste-attachment.sh

39 lines
1.2 KiB
Bash
Executable file

#!/bin/env bash
# check that clipboard doesn't contain text
if wl-paste --list-types | grep -qv '^text/plain$'; then
tempdir=$(mktemp -d)
extension=$(grep -E "^$(wl-paste --list-types)" /etc/mime.types | awk '{print $2}')
echo -n "Enter file name (extension .$extension will be appended): " >&2
read -e -r user_input
attachment="$tempdir/$user_input.$extension"
read -e -r -p "$(printf "Your file will be written to %s and attached. \n\nConfirm (y/n): " "$attachment" >&2)" confirm
case "$confirm" in
y)
wl-paste >"$attachment"
echo "$attachment"
;;
*)
exit 1
;;
esac
else
# clipboard contains a string (treat as path)
out=$(wl-paste)
if wl-paste --list-types | grep -q '^text/uri-list$' && wl-paste | grep -q '^file://'; then
out=${out#file://}
fi
if [ ! -f "$out" ]; then
read -e -r -p "$(printf "Your clipboard contains %s, which is not a valid attachment. \n\nPress enter to continue." "$out" >&2)"
exit 1
fi
read -e -r -p "$(printf "Your clipboard contains %s, which will be attached as a path. \n\nConfirm (y/n): " "$out" >&2)" confirm
case "$confirm" in
y)
echo "$out"
;;
*)
exit 1
;;
esac
fi