#!/bin/bash #---------------------------------------------------- # Author: Florian "Bluewind" Pritz # # Licensed under WTFPL v2 # (see COPYING for full license text) # #---------------------------------------------------- # Dependencies: curl # Optional: xclip #---------------------------------------------------- VERSION="0.6.3.2" DELETE=0 EXTENSION="" GET=0 PASTEBIN="http://paste.xinu.at" USERAGENT="fb-client/$VERSION" CLIPBOARD="" do_upload() { local EXTRA="" if [[ -n $EXTENSION ]]; then EXTRA="-F extension=$EXTENSION" fi TMPFILE=$(mktemp "$TMPDIR/data.XXXXXX") curl -# -n -L -A $USERAGENT $EXTRA -F "file=@$1" "$PASTEBIN/file/do_upload" > $TMPFILE sed '$d' $TMPFILE >&2 URL=$(tail -1 $TMPFILE) echo $URL CLIPBOARD="$CLIPBOARD $URL" } read_stdin() { if tty -s; then echo "^C to exit, ^D to send" fi cat > "$1" } help() { cat <&2; exit 1;; :) echo "Option \"-$OPTARG\" needs an argument" >&2; exit 1;; esac done shift $((OPTIND - 1)) TMPDIR="$(mktemp -d "/tmp/fb.XXXXXX")" trap "rm -rf '${TMPDIR}'" EXIT TERM if (($# == 0)); then read_stdin "$TMPDIR/stdin" do_upload "$TMPDIR/stdin" else for i in "$@"; do if [[ $DELETE == 1 ]]; then curl -n -L -A $USERAGENT "$PASTEBIN/file/delete/$i" elif [[ $GET == 1 ]]; then curl -s -o - -A $USERAGENT "$PASTEBIN/$i" elif grep -qE "^(f|ht)tp(s)?://.+" <<< "$i"; then cd $TMPDIR curl -# -A $USERAGENT -O "$i" for f in *; do do_upload "$f" && rm -f "$f" done else do_upload $i fi done fi echo -n $CLIPBOARD | nohup &> /dev/null xclip || true