From 9359b2ecfd4b9e8e5782a910b567d6149e2d02f8 Mon Sep 17 00:00:00 2001 From: Florian Pritz Date: Sat, 23 Oct 2010 19:21:34 +0200 Subject: fb: add compress and tar support Files will be compress with gz or xz before uploading if -c or -cc are specified. Directories will be tared automatically and if -c or -cc is specified the tar file will also be compressed with gz or xz. If the -t switch is used all arguments will be combined into one single tar file which will be compressed with gz or xz if -c or -cc is specified. Signed-off-by: Florian Pritz --- fb | 100 +++++++++++++++++++++++++++++++++++++++++++++++++-------------------- 1 file changed, 72 insertions(+), 28 deletions(-) diff --git a/fb b/fb index 6b0eabd..741831c 100755 --- a/fb +++ b/fb @@ -11,11 +11,15 @@ # Optional: xclip #---------------------------------------------------- -VERSION="0.6.7.1" +VERSION="0.6.8" DELETE= EXTENSION="" GET= +TAR= +COMPRESS=0 +TAREXT=".tar" +TAROPTS="" PASTEBIN="http://paste.xinu.at" WARNSIZE=10485760 USERAGENT="fb-client/$VERSION" @@ -24,19 +28,37 @@ EXITCODE=0 do_upload() { local EXTRA="" + file="$1" + basefilename="`basename "$file"`" + basedirname="`dirname "$file"`" + if [ -d "$file" ]; then + cd "$basedirname" + tar $TAROPTS -cf "$TMPDIR/$basefilename$TAREXT" "$basefilename" + COMPRESS=0 + file="$TMPDIR/$basefilename$TAREXT" + fi + + if [ "$COMPRESS" == "1" ]; then + gzip -c "$file" > "$TMPDIR/$basefilename.gz" + file="$TMPDIR/$basefilename.gz" + elif [ "$COMPRESS" == "2" ]; then + xz -c "$file" > "$TMPDIR/$basefilename.xz" + file="$TMPDIR/$basefilename.xz" + fi + if [ "$EXTENSION" ]; then EXTRA="-F extension=$EXTENSION" fi TMPFILE=`mktemp "$TMPDIR/data.XXXXXX"` - if [ `stat -c %s "$1"` -gt "$WARNSIZE" ]; then + if [ `stat -c %s "$file"` -gt "$WARNSIZE" ]; then WARNSIZE=`curl -s "$PASTEBIN/file/get_max_size"` - if [ `stat -c %s "$1"` -gt "$WARNSIZE" ]; then + if [ `stat -c %s "$file"` -gt "$WARNSIZE" ]; then echo "Warning: Your upload is too big and would be rejected. Maximum size is: $WARNSIZE bytes. Skipping..." >&2 EXITCODE=1 return 1 fi fi - if ! curl -# -n -L -A $USERAGENT $EXTRA -F "file=@$1" "$PASTEBIN/file/do_upload" > $TMPFILE; then + if ! curl -# -n -L -A $USERAGENT $EXTRA -F "file=@$file" "$PASTEBIN/file/do_upload" > $TMPFILE; then EXITCODE=1 return 1 fi @@ -56,23 +78,38 @@ read_stdin() { help() { cat </dev/null`" ] && echo -n $CLIPBOARD | nohup xclip >/dev/null 2>&1 -- cgit v1.2.3-24-g4f1b