summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xphttp26
1 files changed, 26 insertions, 0 deletions
diff --git a/phttp b/phttp
new file mode 100755
index 0000000..eb69732
--- /dev/null
+++ b/phttp
@@ -0,0 +1,26 @@
+#!/bin/sh
+PHTTP_CACHE=${PHTTP_CACHE:-/dev/shm/phttp}
+mkdir -p $PHTTP_CACHE/mimes $PHTTP_CACHE/files || exit 1
+
+make_sum() {
+ echo "$@" | sha512sum | head -c72
+ echo
+}
+
+get_with_arguments() {
+ local BASENAME
+ BASENAME=$(make_sum $@)
+ [ -e $PHTTP_CACHE/files/$BASENAME ] && {
+ echo "$(cat $PHTTP_CACHE/mimes/$BASENAME) $PHTTP_CACHE/files/$BASENAME"
+ return
+ }
+ local TYPE
+ TYPE=$(curl -sL -w "%{content_type}\n" $@ -o "$PHTTP_CACHE/files/$BASENAME") && {
+ echo "$TYPE $PHTTP_CACHE/files/$BASENAME"
+ echo "$TYPE" > $PHTTP_CACHE/mimes/$BASENAME
+ return
+ }
+ return 1
+}
+
+get_with_arguments $@