diff options
Diffstat (limited to 'bin')
-rwxr-xr-x | bin/rupload | 45 |
1 files changed, 33 insertions, 12 deletions
diff --git a/bin/rupload b/bin/rupload index c414b68..74c943c 100755 --- a/bin/rupload +++ b/bin/rupload @@ -1,5 +1,9 @@ #!/bin/sh +REMOTE="do" +URLBASE="https://ubq323.website/files/" +REMOTEDIR="/srv/web/ubq/files/" + if [ $# -eq 0 ]; then printf '%s\n' "usage: $0 [-n] [-p] [-x EXT | -r NAME | -R] FILENAME" >&2 printf '\t%s\n' "-n: dry run (don't actually upload anything)" >&2 @@ -13,6 +17,7 @@ fi dry_run=0 samename=0 printurl=0 +saved_stdin=0 override_rname= while [ $# -gt 1 ]; do if [ "$1" = "-x" ]; then @@ -36,30 +41,43 @@ while [ $# -gt 1 ]; do fi done -if [ ! -f "$1" ]; then - printf %s "$1: file does not exist" >&2 +target="$1" + +if [ "$1" = "-" ]; then + tempfile="$(mktemp /tmp/tmp_XXXXXXXXXXX)" + # echo yeah "$tempfile" + cat >"$tempfile" + saved_stdin=1 + target="$tempfile" +fi + +tidy_tempfile() { + if [ "$saved_stdin" -eq 1 ]; then + rm "$tempfile" + fi +} + +if [ ! -f "$target" ]; then + printf "%s: file does not exist\n" "$target" >&2 exit 1 fi if [ "$samename" -eq 1 ]; then - override_rname="$(basename "$1")" + override_rname="$(basename "$target")" fi -REMOTE="do" -URLBASE="https://ubq323.website/files/" -REMOTEDIR="/srv/web/ubq/files/" -ext="${1#*.}" -if [ "$ext" = "$1" ]; then +ext="${target#*.}" +if [ "$ext" = "$target" ]; then ext='.file' - bname="$(basename "$1")" + bname="$(basename "$target")" else ext=".$ext" - bname="$(basename "$1" "$ext")" + bname="$(basename "$target" "$ext")" fi ext=${override_ext:-$ext} -rbname="$(md5sum "$1"|cut -d' ' -f1|tr 'a-z' 'A-Z'|basenc -d --base16|basenc --base64url|head -c8)" +rbname="$(md5sum "$target"|cut -d' ' -f1|tr 'a-z' 'A-Z'|basenc -d --base16|basenc --base64url|head -c8)" rname="${override_rname:-$rbname$ext}" exists_already() { @@ -75,10 +93,11 @@ done printf 'uploading to %s\n' "$rname" >&2 if [ "$dry_run" -eq 1 ]; then echo dryrun, not uploading anything + tidy_tempfile exit 0 fi -scp -q "$1" "${REMOTE}:$REMOTEDIR$rname" +scp -q "$target" "${REMOTE}:$REMOTEDIR$rname" ssh "$REMOTE" chmod a+r "$REMOTEDIR$rname" url="$URLBASE$rname" @@ -89,3 +108,5 @@ else printf '%s\n' "$url" fi +tidy_tempfile + |