diff options
-rw-r--r-- | fb.in | 198 |
1 files changed, 99 insertions, 99 deletions
@@ -10,33 +10,33 @@ # Optional dependency: xclip #---------------------------------------------------- -PASTEBIN="http://paste.xinu.at" -WARNSIZE=10485760 -LIBDIR="@LIBDIR@" +pastebin="http://paste.xinu.at" +warnsize=10485760 +libdir="@LIBDIR@" # the calling conventions for stat(1) are highly system dependent -STAT='stat -c %s' # GNU stat(1) is the default since most people have it +stat='stat -c %s' # GNU stat(1) is the default since most people have it -CLIPBOARD_CMD=xclip +clipboard_cmd=xclip case "`uname -s`" in - *BSD) STAT='stat -f %z';; - Minix) STAT='stat -size';; + *BSD) stat='stat -f %z';; + Minix) stat='stat -size';; Darwin) - STAT='stat -f %z' - CLIPBOARD_CMD=pbcopy + stat='stat -f %z' + clipboard_cmd=pbcopy ;; esac -VERSION="@VERSION@" -DELETE= -EXTENSION="" -GET= -TAR= -COMPRESS=0 -DISPLAYHISTORY= -CLIPBOARD="" -EXITCODE=0 +version="@VERSION@" +delete= +extension="" +get= +tar= +compress=0 +display_history= +clipboard="" +exitcode=0 base64_encode() { if type base64 2>&1 >/dev/null; then @@ -56,30 +56,30 @@ request_helper() { file=$3 # if available use the external helper, else fall back to calling curl - if [ -x "$LIBDIR/fb-helper" ]; then - $LIBDIR/fb-helper "$mode" "$url" "$file" + if [ -x "$libdir/fb-helper" ]; then + $libdir/fb-helper "$mode" "$url" "$file" else - USERAGENT="fb-client/shell-$VERSION" - CURLOPTS="-# -n -L -A $USERAGENT" + useragent="fb-client/shell-$version" + curlopts="-# -n -L -A $useragent" if [ "$mode" = "d" ]; then - CURLOPTS="$CURLOPTS -s" + curlopts="$curlopts -s" fi if [ "$mode" = "u" ]; then basefilename=`basename -- "$file"` - if [ "`$STAT -- "$file"`" -eq "0" ] || printf "%s" "$basefilename" | grep -F -q ","; then + if [ "`$stat -- "$file"`" -eq "0" ] || printf "%s" "$basefilename" | grep -F -q ","; then if [ "`wc -c < "$file"`" -eq "0" ]; then printf "%s\n" "Error: skipping 0-byte file: \"$file\"" >&2 return 1 fi base64fn="`base64_encode "$basefilename"`" - curl $CURLOPTS -F "file=@-" -F "filename=$base64fn" "$url" < "$file" -o /dev/stdout + curl $curlopts -F "file=@-" -F "filename=$base64fn" "$url" < "$file" -o /dev/stdout else - curl $CURLOPTS -F "file=@$file" "$url" -o /dev/stdout + curl $curlopts -F "file=@$file" "$url" -o /dev/stdout fi else - curl $CURLOPTS "$url" + curl $curlopts "$url" fi fi } @@ -99,22 +99,22 @@ is_url() { } do_tar_upload() { - if [ "$COMPRESS" = "1" ]; then - file="$TMPDIR/upload.tar.gz" + if [ "$compress" = "1" ]; then + file="$tmpdir/upload.tar.gz" tar -cf - -- "$@" | gzip -c > "$file" || return 1 - elif [ "$COMPRESS" = "2" ]; then - file="$TMPDIR/upload.tar.xz" + elif [ "$compress" = "2" ]; then + file="$tmpdir/upload.tar.xz" tar -cf - -- "$@" | xz -c > "$file" || return 1 else - file="$TMPDIR/upload.tar" + file="$tmpdir/upload.tar" tar -cf "$file" -- "$@" || return 1 fi - COMPRESS=0 + compress=0 do_upload "$file" || return 1 } do_upload() { - local EXTRA="" + local extra="" file="$1" basefilename="`basename -- "$file"`" basedirname="`dirname -- "$file"`" @@ -127,45 +127,45 @@ do_upload() { if [ -d "$file" ]; then cd "$basedirname" - if [ "$COMPRESS" = "1" ]; then - file="$TMPDIR/$basefilename.tar.gz" + if [ "$compress" = "1" ]; then + file="$tmpdir/$basefilename.tar.gz" tar -cf - -- "$basefilename" | gzip -c > "$file" || return 1 - elif [ "$COMPRESS" = "2" ]; then - file="$TMPDIR/$basefilename.tar.xz" + elif [ "$compress" = "2" ]; then + file="$tmpdir/$basefilename.tar.xz" tar -cf - -- "$basefilename" | xz -c > "$file" || return 1 else - file="$TMPDIR/$basefilename.tar" + file="$tmpdir/$basefilename.tar" tar -cf "$file" -- "$basefilename" || return 1 fi else - if [ "$COMPRESS" = "1" ]; then - gzip -c -- "$file" > "$TMPDIR/$basefilename.gz" || return 1 - file="$TMPDIR/$basefilename.gz" - elif [ "$COMPRESS" = "2" ]; then - xz -c -- "$file" > "$TMPDIR/$basefilename.xz" || return 1 - file="$TMPDIR/$basefilename.xz" + if [ "$compress" = "1" ]; then + gzip -c -- "$file" > "$tmpdir/$basefilename.gz" || return 1 + file="$tmpdir/$basefilename.gz" + elif [ "$compress" = "2" ]; then + xz -c -- "$file" > "$tmpdir/$basefilename.xz" || return 1 + file="$tmpdir/$basefilename.xz" fi fi - TMPFILE=`mktemp "$TMPDIR/data.XXXXXX"` - if [ "`$STAT -- "$file"`" -gt "$WARNSIZE" ]; then - WARNSIZE=`request_helper d "$PASTEBIN/file/get_max_size"` - if [ "`$STAT -- "$file"`" -gt "$WARNSIZE" ]; then - printf "%s\n" "Warning: Your upload is too big and would be rejected. Maximum size is: $WARNSIZE bytes. Skipping..." >&2 + tmpfile=`mktemp "$tmpdir/data.XXXXXX"` + if [ "`$stat -- "$file"`" -gt "$warnsize" ]; then + warnsize=`request_helper d "$pastebin/file/get_max_size"` + if [ "`$stat -- "$file"`" -gt "$warnsize" ]; then + printf "%s\n" "Warning: Your upload is too big and would be rejected. Maximum size is: $warnsize bytes. Skipping..." >&2 return 1 fi fi - request_helper u "$PASTEBIN/file/do_upload" "$file" > $TMPFILE || return 1 + request_helper u "$pastebin/file/do_upload" "$file" > $tmpfile || return 1 - sed '$d' $TMPFILE >&2 - URL=`tail -1 $TMPFILE`"$EXTENSION" - printf "%s\n" "$URL" - if printf "%s" "$URL" | grep -qE "^https?://"; then - if [ -z "$CLIPBOARD" ]; then - CLIPBOARD="$URL" + sed '$d' $tmpfile >&2 + url=`tail -1 $tmpfile`"$extension" + printf "%s\n" "$url" + if printf "%s" "$url" | grep -qE "^https?://"; then + if [ -z "$clipboard" ]; then + clipboard="$url" else - CLIPBOARD="$CLIPBOARD $URL" + clipboard="$clipboard $url" fi fi } @@ -187,7 +187,7 @@ id_from_arg() { help() { cat <<! -fb-client version $VERSION +fb-client version $version usage: [cat |] `basename "$0"` [switches] [options] [<file(s)|ID(s)|folder(s)>] Upload/nopaste file(s)/stdin to paste.xinu.at and copy URL(s) to clipboard. @@ -213,100 +213,100 @@ if ! type getopts >/dev/null 2>&1; then exit 1 fi -while getopts "e:gdhHtcv" OPTION; do - case $OPTION in - e) EXTENSION="$OPTARG";; - g) GET=1;; - c) COMPRESS=`expr $COMPRESS + 1`;; - t) TAR=1;; - d) DELETE=1;; - H) DISPLAYHISTORY=1;; - v) printf "%s\n" "$VERSION"; exit 0;; +while getopts "e:gdhHtcv" option; do + case $option in + e) extension="$OPTARG";; + g) get=1;; + c) compress=`expr $compress + 1`;; + t) tar=1;; + d) delete=1;; + H) display_history=1;; + v) printf "%s\n" "$version"; exit 0;; h|\?) help; exit 0;; esac done shift `expr $OPTIND - 1` -if [ "$COMPRESS" = "1" ]; then +if [ "$compress" = "1" ]; then require_executable gzip -elif [ "$COMPRESS" = "2" ]; then +elif [ "$compress" = "2" ]; then require_executable xz fi -TMPDIR="`mktemp -dt "fb.XXXXXX"`" -trap "rm -rf '${TMPDIR}'" EXIT TERM +tmpdir="`mktemp -dt "fb.XXXXXX"`" +trap "rm -rf '${tmpdir}'" EXIT TERM -if [ "$DELETE" ] || [ "$GET" ]; then +if [ "$delete" ] || [ "$get" ]; then if [ $# -eq 0 ]; then printf "%s\n" "Error: no ID specified" >&2 exit 1 fi for i in "$@"; do i=$(id_from_arg "$i") - if [ "$DELETE" ]; then - request_helper d "$PASTEBIN/file/delete/$i" || EXITCODE=1 - - elif [ "$GET" ]; then - if [ "$COMPRESS" = "1" ]; then - request_helper d "$PASTEBIN/$i" | gzip -cd || EXITCODE=1 - elif [ "$COMPRESS" = "2" ]; then - request_helper d "$PASTEBIN/$i" | xz -cd || EXITCODE=1 + if [ "$delete" ]; then + request_helper d "$pastebin/file/delete/$i" || exitcode=1 + + elif [ "$get" ]; then + if [ "$compress" = "1" ]; then + request_helper d "$pastebin/$i" | gzip -cd || exitcode=1 + elif [ "$compress" = "2" ]; then + request_helper d "$pastebin/$i" | xz -cd || exitcode=1 else - request_helper d "$PASTEBIN/$i" || EXITCODE=1 + request_helper d "$pastebin/$i" || exitcode=1 fi fi done -elif [ "$DISPLAYHISTORY" ]; then - request_helper d "$PASTEBIN/file/upload_history" || EXITCODE=1 +elif [ "$display_history" ]; then + request_helper d "$pastebin/file/upload_history" || exitcode=1 elif [ $# -eq 0 ]; then - if [ "$TAR" ]; then + if [ "$tar" ]; then printf "%s\n" "Error: -t is not supported when operating on stdin" >&2 exit 1 fi - read_stdin "$TMPDIR/stdin" - do_upload "$TMPDIR/stdin" || EXITCODE=1 + read_stdin "$tmpdir/stdin" + do_upload "$tmpdir/stdin" || exitcode=1 else - if [ "$TAR" ]; then - HAVE_URL= + if [ "$tar" ]; then + have_url= for i in "$@"; do if is_url "$i"; then - HAVE_URL=1 + have_url=1 fi done - if [ "$HAVE_URL" ]; then + if [ "$have_url" ]; then # TODO: support -t when passing URLs as arguments printf "%s\n" "Error: -t is not yet supported when operating on a URL" >&2 exit 1 else - do_tar_upload "$@" || EXITCODE=1 + do_tar_upload "$@" || exitcode=1 fi else for i in "$@"; do if is_url "$i"; then - cd $TMPDIR + cd $tmpdir if ! request_helper d "$i" > "`basename "$i"`"; then - EXITCODE=1 + exitcode=1 continue fi for f in *; do if ! do_upload "$f"; then - EXITCODE=1 + exitcode=1 fi rm -f -- "$f" done else - do_upload "$i" || EXITCODE=1 + do_upload "$i" || exitcode=1 fi done fi fi -if [ "$CLIPBOARD" != "" ]; then - type $CLIPBOARD_CMD >/dev/null 2>&1 && printf "%s" "$CLIPBOARD" | nohup $CLIPBOARD_CMD >/dev/null 2>&1 +if [ "$clipboard" != "" ]; then + type $clipboard_cmd >/dev/null 2>&1 && printf "%s" "$clipboard" | nohup $clipboard_cmd >/dev/null 2>&1 fi -exit $EXITCODE +exit $exitcode #vim: set noet: |