summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFlorian Pritz <bluewind@xinu.at>2011-12-11 13:41:52 +0100
committerFlorian Pritz <bluewind@xinu.at>2011-12-11 13:41:52 +0100
commit41488c9750b7675dcb544a36e2efb9b00aad6209 (patch)
tree403cb01e5f45a88cf74eabdbb1391e0ff09e6cc2
parentbdff0e2faab98b13f9d54bf489ea537ca5e75d6e (diff)
add bash version of fb-helper.c
Using the bash helper can be forced by running "make LIBCURL=". Signed-off-by: Florian Pritz <bluewind@xinu.at>
-rw-r--r--Makefile8
-rw-r--r--fb-helper.sh.in20
2 files changed, 28 insertions, 0 deletions
diff --git a/Makefile b/Makefile
index 07857fc..8f1fbd9 100644
--- a/Makefile
+++ b/Makefile
@@ -13,8 +13,16 @@ fb: fb.in
sed 's|@VERSION@|$(VERSION)|; s|@LIBDIR@|$(LIBDIR)|' $< > $@
chmod 755 $@
+ifdef LIBCURL
fb-helper: fb-helper.c
$(CC) $(CFLAGS) $(LIBCURL) -DVERSION=\"$(VERSION)\" -o $@ $<
+else
+fb-helper: fb-helper.sh.in
+ @echo "libcurl not found. using shell helper..."
+ @[ -n "$(VERSION)" ] || (echo "Error: version detection failed"; exit 1)
+ sed 's|@VERSION@|$(VERSION)|; s|@LIBDIR@|$(LIBDIR)|' $< > $@
+ chmod 755 $@
+endif
fb.1: fb.pod
pod2man -c "" $< $@
diff --git a/fb-helper.sh.in b/fb-helper.sh.in
new file mode 100644
index 0000000..3a4e3b2
--- /dev/null
+++ b/fb-helper.sh.in
@@ -0,0 +1,20 @@
+#!/bin/sh
+
+mode=$1
+url=$2
+file=$3
+
+USERAGENT="fb-client/shell-@VERSION@"
+CURLOPTS="-n -L -A $USERAGENT"
+
+if [ "$mode" = "u" ]; then
+ basefilename=`basename -- "$file"`
+ if [ `stat -c %s -- "$file"` -eq "0" ] || echo "$basefilename" | grep -F -q ","; then
+ basefilename=`echo "$basefilename" | tr -d ,`
+ curl $CURLOPTS -F "file=@-;filename=$basefilename" "$url" < "$file" -o /dev/stdout
+ else
+ curl $CURLOPTS -F "file=@$file" "$url" -o /dev/stdout
+ fi
+else
+ curl $CURLOPTS "$url"
+fi