summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDarukutsu <darupeter@pm.me>2022-11-18 13:44:16 +0100
committerArun Prakash Jana <engineerarun@gmail.com>2022-11-18 21:17:02 +0530
commit4bb7ffcd4a33c0564310c388f8471ed6da381bbe (patch)
tree606d438b92c88fb8d844e79ab7d72681779f8209
parent3359b8f7cd2e1f107daab010dab847b45bffd299 (diff)
plugins/upload: handle selection using ffsend
-rwxr-xr-xplugins/upload37
1 files changed, 26 insertions, 11 deletions
diff --git a/plugins/upload b/plugins/upload
index 733cf87d..4948587b 100755
--- a/plugins/upload
+++ b/plugins/upload
@@ -1,6 +1,8 @@
#!/usr/bin/env sh
-# Description: Upload to Firefox Send if ffsend is found, else
+# 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
#
@@ -11,20 +13,33 @@
# Shell: POSIX compliant
# Author: Arun Prakash Jana
-if [ -n "$1" ] && [ -s "$1" ]; then
+selection=${NNN_SEL:-${XDG_CONFIG_HOME:-$HOME/.config}/nnn/.selection}
+if [ -s "$selection" ]; 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
+ # File name will be randomized foo.tar
+ xargs -0 < "$selection" ffsend u
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
+ printf "ffsend is required to upload selection."
fi
+
+ # Clear selection
+ printf "-" > "$NNN_PIPE"
else
- printf "empty file!"
+ 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 _