From 49e750de862f98f238eb5b652af1813dfabeec8e Mon Sep 17 00:00:00 2001 From: Andrei Poenaru Date: Sat, 27 May 2017 12:23:09 +0300 Subject: [PATCH 1/4] Add server parameter. --- src/transfer | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/transfer b/src/transfer index 69d73a1..fea8438 100755 --- a/src/transfer +++ b/src/transfer @@ -1,5 +1,7 @@ #!/usr/bin/env bash +server="https://transfer.sh" + # COMMAND PARSING ################################################################################# cmd="${1}" ; shift @@ -108,18 +110,18 @@ function upload() { cat "${tmptar}" | ([ -z "${encrypt}" ] && cat || openssl aes-256-cbc -a -salt ${password:+-k "${password}"}) | - curl --progress-bar --upload-file - "https://transfer.sh/${slug}" > ${tmpurl} + curl --progress-bar --upload-file - "${server}/${slug}" > ${tmpurl} elif [ -f "${file}" ]; then [ -z "${slug}" ] && slug="$(basename ${file} | sed -e 's/[^a-zA-Z0-9._-]/-/g')" cat "${file}" | ([ -z "${encrypt}" ] && cat || openssl aes-256-cbc -a -salt ${password:+-k "${password}"}) | - curl --progress-bar --upload-file - "https://transfer.sh/${slug}" > ${tmpurl} + curl --progress-bar --upload-file - "${server}/${slug}" > ${tmpurl} fi elif [ -n "${stdin}" ]; then echo "${stdin}" | ([ -z "${encrypt}" ] && cat || openssl aes-256-cbc -a -salt ${password:+-k "${password}"}) | - curl --progress-bar --upload-file - "https://transfer.sh/${slug}" > ${tmpurl} + curl --progress-bar --upload-file - "${server}/${slug}" > ${tmpurl} fi cat ${tmpurl} From d632fc59f62e7e89857c7e80111b33ab7f6dac4e Mon Sep 17 00:00:00 2001 From: Andrei Poenaru Date: Sat, 27 May 2017 12:31:14 +0300 Subject: [PATCH 2/4] Add aliases for upload and download commands. --- src/transfer | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/transfer b/src/transfer index fea8438..c961ba9 100755 --- a/src/transfer +++ b/src/transfer @@ -3,7 +3,12 @@ server="https://transfer.sh" # COMMAND PARSING ################################################################################# -cmd="${1}" ; shift +case "${1}" in + download|dl|d) cmd="download" ;; + upload|up|ul|u) cmd="upload" ;; + *) cmd="${1}" ;; +esac +shift # STDIN FRIENDLINESS ############################################################################## case "${cmd}" in From c8508303602bb8fbd3854c8ca0190cf70b683fdd Mon Sep 17 00:00:00 2001 From: Andrei Poenaru Date: Sat, 27 May 2017 13:38:42 +0300 Subject: [PATCH 3/4] Add parameters for maxx days and downloads. --- src/transfer | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/transfer b/src/transfer index c961ba9..4ec336a 100755 --- a/src/transfer +++ b/src/transfer @@ -22,6 +22,10 @@ while (( "$#" )); do --encrypt|-e) encrypt=0 ; shift ;; --file=*) file=${1/--file=/''} ; shift ;; --file*|-f*) file=${2} ; shift ; shift ;; + --max-days=*) max_days=${1/--max-days=/''} ; shift ;; + --max-days*|-y*) max_days=${2} ; shift ; shift ;; + --max-downloads=*) max_downloads=${1/--max-downloads=/''} ; shift ;; + --max-downloads*|-l*) max_downloads=${2} ; shift ; shift ;; --password=*) password=${1/--password=/''} ; shift ;; --password*|-p*) password=${2} ; shift ; shift ;; --slug=*) slug=${1/--slug=/''} ; shift ;; @@ -104,6 +108,10 @@ function upload() { local tmpurl=$(mktemp -t transfer.url.XXXXXXXX) trap "rm -f ${tmpurl}" 0 + local headers="" + [ -n "${max_days}" ] && headers="${headers}-H \"Max-Days: ${max_days}\" " + [ -n "${max_downloads}" ] && headers="${headers}-H \"Max-Downloads: ${max_downloads}\"" + if [ -n "${file}" ]; then if [ -d ${file} ]; then [ -z "${slug}" ] && slug="$(basename ${file} | sed -e 's/[^a-zA-Z0-9._-]/-/g').tar.gz" @@ -115,18 +123,18 @@ function upload() { cat "${tmptar}" | ([ -z "${encrypt}" ] && cat || openssl aes-256-cbc -a -salt ${password:+-k "${password}"}) | - curl --progress-bar --upload-file - "${server}/${slug}" > ${tmpurl} + eval curl --progress-bar "${headers}" --upload-file - "${server}/${slug}" > ${tmpurl} elif [ -f "${file}" ]; then [ -z "${slug}" ] && slug="$(basename ${file} | sed -e 's/[^a-zA-Z0-9._-]/-/g')" cat "${file}" | ([ -z "${encrypt}" ] && cat || openssl aes-256-cbc -a -salt ${password:+-k "${password}"}) | - curl --progress-bar --upload-file - "${server}/${slug}" > ${tmpurl} + eval curl --progress-bar "${headers}" --upload-file - "${server}/${slug}" > ${tmpurl} fi elif [ -n "${stdin}" ]; then echo "${stdin}" | ([ -z "${encrypt}" ] && cat || openssl aes-256-cbc -a -salt ${password:+-k "${password}"}) | - curl --progress-bar --upload-file - "${server}/${slug}" > ${tmpurl} + eval curl --progress-bar "${headers}" --upload-file - "${server}/${slug}" > ${tmpurl} fi cat ${tmpurl} From 338d0f99d785beb2521a909882196c8525c2061d Mon Sep 17 00:00:00 2001 From: Andrei Poenaru Date: Sat, 27 May 2017 13:51:41 +0300 Subject: [PATCH 4/4] Update README with new options. --- README.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index b4e76c0..41ef031 100644 --- a/README.md +++ b/README.md @@ -40,6 +40,10 @@ $ transfer upload /path/to/file.log custom.log $ transfer upload --file=/path/to/file.log --slug=custom.log $ transfer upload --file /path/to/file.log --slug custom.log $ transfer upload -f /path/to/file.log -s custom.log + +$ # Custom lifetime: +$ transfer upload --max-days 1 /path/to/file.log +$ transfer upload --max-downloads 10 /path/to/file.log ``` __Download samples:__ @@ -96,7 +100,7 @@ Usage: [--url|-u ] transfer upload [ [slug]] - [--encrypt|-e] [--file|-f ] [--password|-p ] [--slug|-s ] + [--encrypt|-e] [--max-days|-y ] [--max-downloads|-l ] [--file|-f ] [--password|-p ] [--slug|-s ] [--trace|-x] Commands: @@ -108,6 +112,8 @@ More Information: repo https://github.com/rockymadden/transfer-cli ``` +To use a selfhosted instance of transfer.sh, change the `server` variable at the top of the script. + ## License ``` The MIT License (MIT)