summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarc Cornellà <marc.cornella@live.com>2018-05-25 20:56:59 +0200
committerGitHub <noreply@github.com>2018-05-25 20:56:59 +0200
commited0bd6b33cf64624affc5d452f21b2bd6cd46cc9 (patch)
tree6541586e61103f9f6db3288cee269ea911ada322
parent8f3737f45b4c3c05e1488a28f79c6bc29ad8fb32 (diff)
parent3d8ee47c7a55119318d698a90f523e04fffb878d (diff)
downloadzsh-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.md24
-rw-r--r--plugins/transfer/transfer.plugin.zsh67
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