nnn

mirror of https://github.com/jarun/nnn
Log | Files | Refs | README | LICENSE

upload (1296B)


      1 #!/usr/bin/env sh
      2 
      3 # Description: Selections are archived into a tar file (uncompressed) and uploaded to file.io
      4 #              For single files:
      5 #              Paste contents of a text file to http://ix.io
      6 #              Upload a binary file to file.io
      7 #
      8 # Dependencies: curl, jq, tar, file with `--mime-type` support
      9 #
     10 # Note: Binary file set to expire after a week
     11 #
     12 # Shell: POSIX compliant
     13 # Author: Arun Prakash Jana
     14 
     15 selection=${NNN_SEL:-${XDG_CONFIG_HOME:-$HOME/.config}/nnn/.selection}
     16 if [ -s "$selection" ]; then
     17     xargs -0 tar -c < "$selection" | \
     18         curl -s -F "file=@/dev/stdin;filename=selection.tar" 'https://file.io/?expires=1w' | \
     19         jq '.link' | tr -d '"'
     20 
     21     # Clear selection
     22     printf "-" > "$NNN_PIPE"
     23 else
     24     if [ -n "$1" ] && [ -s "$1" ]; then
     25         if file --mime-type "$1" | grep -q -F "text/"; then
     26             curl -F "file=@$1" https://0x0.st
     27         else
     28             # Upload the file, show the download link and wait till user presses any key
     29             curl -s -F "file=@$1" https://file.io/?expires=1w | jq '.link' | tr -d '"'
     30             # To write download link to "$1".loc and exit
     31             # curl -s -F "file=@$1" https://file.io/?expires=1w -o `basename "$1"`.loc
     32         fi
     33     else
     34         printf "empty file!"
     35     fi
     36 fi
     37 
     38 read -r _