diff options
Diffstat (limited to 'files/.config/nnn/plugins/upload')
| -rwxr-xr-x | files/.config/nnn/plugins/upload | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/files/.config/nnn/plugins/upload b/files/.config/nnn/plugins/upload new file mode 100755 index 0000000..4948587 --- /dev/null +++ b/files/.config/nnn/plugins/upload @@ -0,0 +1,45 @@ +#!/usr/bin/env sh + +# Description: Selections are uploaded using Firefox Send +# For single files: +# Upload to Firefox Send if ffsend is found, else +# Paste contents of a text a file http://ix.io +# Upload a binary file to file.io +# +# Dependencies: ffsend (https://github.com/timvisee/ffsend), curl, jq, tr +# +# Note: Binary file set to expire after a week +# +# Shell: POSIX compliant +# Author: Arun Prakash Jana + +selection=${NNN_SEL:-${XDG_CONFIG_HOME:-$HOME/.config}/nnn/.selection} +if [ -s "$selection" ]; then + if type ffsend >/dev/null 2>&1; then + # File name will be randomized foo.tar + xargs -0 < "$selection" ffsend u + else + printf "ffsend is required to upload selection." + fi + + # Clear selection + printf "-" > "$NNN_PIPE" +else + if [ -n "$1" ] && [ -s "$1" ]; then + if type ffsend >/dev/null 2>&1; then + ffsend -fiq u "$1" + elif [ "$(mimetype --output-format %m "$1" | awk -F '/' '{print $1}')" = "text" ]; then + curl -F "f:1=@$1" ix.io + else + # Upload the file, show the download link and wait till user presses any key + curl -s -F "file=@$1" https://file.io/?expires=1w | jq '.link' | tr -d '"' + + # To write download link to "$1".loc and exit + # curl -s -F "file=@$1" https://file.io/?expires=1w -o `basename "$1"`.loc + fi + else + printf "empty file!" + fi +fi + +read -r _ |
