aboutsummaryrefslogtreecommitdiff
path: root/libexec/build-fetch-http
diff options
context:
space:
mode:
authorMark Ferrell <major@homeonderanged.org>2014-04-08 08:52:09 -0700
committerMark Ferrell <major@homeonderanged.org>2014-04-08 08:52:09 -0700
commit30b418416a1a7ed3ab23fe52c7552a2846481024 (patch)
treedcdcc28ed7a1148badea2d48f5ed8408f1afd8de /libexec/build-fetch-http
parentf101ae8e29a6af278210e081b047412a19cb66f9 (diff)
Handle various fetch methods as sub-cmds to fetch
Diffstat (limited to 'libexec/build-fetch-http')
-rwxr-xr-xlibexec/build-fetch-http36
1 files changed, 36 insertions, 0 deletions
diff --git a/libexec/build-fetch-http b/libexec/build-fetch-http
new file mode 100755
index 0000000..aa285de
--- /dev/null
+++ b/libexec/build-fetch-http
@@ -0,0 +1,36 @@
+#!/usr/bin/env build
+
+build_fetch_http_cleanup()
+{
+ test -z "${BUILD_FETCH_HTTP_TMP}" || rm -f "${BUILD_FETCH_HTTP_TMP}"
+}
+
+build_fetch_wget() { wget --quiet -O "${2}" "${1}"; }
+
+build_fetch_http()
+{
+ set -- "${1}" "`build-make-fetch --name "${1}"`"
+
+ test -d "${BUILDER_SRCDIR}" || mkdir -p "${BUILDER_SRCDIR}"
+ test -f "${BUILDER_SRCDIR}/${2}" && return
+
+ BUILD_FETCH_HTTP_TMP="`mktemp "${BUILDER_TMPDIR}/${2}.XXXXXX"`"
+ BUILDER_CLEANUP="${BUILDER_CLEANUP} build_fetch_http_cleanup"
+
+ build_fetch_cmd "${1}" "${BUILD_FETCH_HTTP_TMP}" && \
+ mv "${BUILD_FETCH_HTTP_TMP}" "${BUILDER_SRCDIR}/${2}"
+}
+
+build_fetch_cmd() { die "no command available to fetch '${1}'"; }
+for cmd in wget; do
+ command -v "${cmd}" > /dev/null 2>&1 || continue
+ eval "build_fetch_cmd() { build_fetch_${cmd} \"\$@\"; }"
+ break
+done
+unset cmd
+
+if test "${BUILDER_CALL_STACK}" = '__main__'; then
+ build_fetch_http "${1}"
+fi
+
+# vim: filetype=sh