bin-client/mbin.sh

46 lines
1.3 KiB
Bash
Executable File

#!/usr/bin/env bash
# Set MKR_BIN if not set. Export it in your shell rc to use a self hosted
# instance. Include the trailing slash with custom urls.
MKR_BIN=${MKR_BIN:-https://bin.webionite.com/}
HASTEBIN=${HASTEBIN:-1}
EDITOR=${EDITOR:-vim}
URL=$MKR_BIN$([[ $HASTEBIN == 1 ]] && echo documents)
function getClipboard() {
if [[ -v WAYLAND_DISPLAY ]]; then
wl-paste
elif [[ -v DISPLAY ]]; then
xclip -selection clipboard -out
fi
}
if [[ $1 == "-c" || $1 == "--clipboard" ]]; then
text=$(getClipboard)
op=$(curl -s --data-binary "${text}" -H "Content-Type:text/plain" "$URL")
elif [[ -f $1 ]]; then
op=$(curl -s --data-binary "@$1" -H "Content-Type:text/plain" "$URL")
elif [ -t 0 ]; then
tmp_file=$(mktemp)
"$EDITOR" "$tmp_file"
op=$(curl -s --data-binary "@${tmp_file}" -H "Content-Type:text/plain" "$URL")
rm "$tmp_file"
else
op=$(curl -s --data-binary "@-" -H "Content-Type:text/plain" "$URL")
fi
if [[ $HASTEBIN == 1 ]]; then
link=$(echo "$op" | jq -r .key)
else
link=$(echo "$op" | cut -f2 -d'/')
fi
if [[ -v WAYLAND_DISPLAY ]]; then
echo "${MKR_BIN}${link}" | tee /dev/tty | wl-copy
xdg-open "${MKR_BIN}${link}"
elif [[ -v DISPLAY ]]; then
echo "${MKR_BIN}${link}" | tee /dev/tty | xclip -selection clipboard
xdg-open "${MKR_BIN}${link}"
else
echo "${MKR_BIN}${link}"
fi