diff options
author | Marc Cornellà <marc.cornella@live.com> | 2018-05-25 20:56:59 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-05-25 20:56:59 +0200 |
commit | ed0bd6b33cf64624affc5d452f21b2bd6cd46cc9 (patch) | |
tree | 6541586e61103f9f6db3288cee269ea911ada322 | |
parent | 8f3737f45b4c3c05e1488a28f79c6bc29ad8fb32 (diff) | |
parent | 3d8ee47c7a55119318d698a90f523e04fffb878d (diff) | |
download | zsh-ed0bd6b33cf64624affc5d452f21b2bd6cd46cc9.tar.gz zsh-ed0bd6b33cf64624affc5d452f21b2bd6cd46cc9.tar.bz2 zsh-ed0bd6b33cf64624affc5d452f21b2bd6cd46cc9.zip |
added a transfer.sh plugin (#5854)
* added a transfer.sh plugin
created a function to easily upload files to transfer.sh file sharing site
Usage : transfer file.txt
* added README for transfer.sh plugin
* replaced transfer function with @nl5887 version
* updated transfer README.md
* modified the script to use tar command instead of zip
* Update README formatting
Co-authored-by: Remco Verhoef <remco@dutchcoders.io>
-rw-r--r-- | plugins/transfer/README.md | 24 | ||||
-rw-r--r-- | plugins/transfer/transfer.plugin.zsh | 67 |
2 files changed, 91 insertions, 0 deletions
diff --git a/plugins/transfer/README.md b/plugins/transfer/README.md new file mode 100644 index 000000000..5fa064445 --- /dev/null +++ b/plugins/transfer/README.md @@ -0,0 +1,24 @@ +# `transfer` plugin + +[`transfer.sh`](https://transfer.sh) is an easy to use file sharing service from the command line + +## Usage + +Add `transfer` to your plugins array in your zshrc file: +```zsh +plugins=(... transfer) +``` + +Then you can: + +- transfer a file: + +```zsh +transfer file.txt +``` + +- transfer a whole directory (it will be automatically compressed): + +```zsh +transfer directory/ +``` diff --git a/plugins/transfer/transfer.plugin.zsh b/plugins/transfer/transfer.plugin.zsh new file mode 100644 index 000000000..7a7cd85ec --- /dev/null +++ b/plugins/transfer/transfer.plugin.zsh @@ -0,0 +1,67 @@ +# transfer.sh Easy file sharing from the command line +# transfer Plugin +# Usage Example : +# > transfer file.txt +# > transfer directory/ + + + +# Author: +# Remco Verhoef <remco@dutchcoders.io> +# https://gist.github.com/nl5887/a511f172d3fb3cd0e42d +# Modified to use tar command instead of zip +# + +curl --version 2>&1 > /dev/null +if [ $? -ne 0 ]; then + echo "Could not find curl." + return 1 +fi + +transfer() { + # check arguments + if [ $# -eq 0 ]; + then + echo "No arguments specified. Usage:\necho transfer /tmp/test.md\ncat /tmp/test.md | transfer test.md" + return 1 + fi + + # get temporarily filename, output is written to this file show progress can be showed + tmpfile=$( mktemp -t transferXXX ) + + # upload stdin or file + file=$1 + + if tty -s; + then + basefile=$(basename "$file" | sed -e 's/[^a-zA-Z0-9._-]/-/g') + + if [ ! -e $file ]; + then + echo "File $file doesn't exists." + return 1 + fi + + if [ -d $file ]; + then + echo $file + # tar directory and transfer + tarfile=$( mktemp -t transferXXX.tar.gz ) + cd $(dirname $file) && tar -czf $tarfile $(basename $file) + curl --progress-bar --upload-file "$tarfile" "https://transfer.sh/$basefile.tar.gz" >> $tmpfile + rm -f $tarfile + else + # transfer file + curl --progress-bar --upload-file "$file" "https://transfer.sh/$basefile" >> $tmpfile + fi + else + # transfer pipe + curl --progress-bar --upload-file "-" "https://transfer.sh/$file" >> $tmpfile + fi + + # cat output link + cat $tmpfile + + # cleanup + rm -f $tmpfile +}
\ No newline at end of file |