changeset 2:15bb449380ba

Initial checkin of buildslave wget cache wrapper. This is a wrapper for wget that caches files fetched using wget foo -O file This wget cache wrapper are currently being run on the buildslaves jaunty-ia32, natty-armv7l and squeeze-armv7l connected to the http://builder.classpath.org/icedtea/buildbot/ buildmaster To prevent the buildslaves to re-download all openjdk drops for each build
author Xerxes R?nby <xerxes@zafena.se>
date Mon, 21 Feb 2011 11:08:43 +0100
parents c3adcbdf8b9d
children c9d0b3347e4d 976dc5a103fd
files buildslave/tools/wget.cache.wrapper
diffstat 1 files changed, 65 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/buildslave/tools/wget.cache.wrapper	Mon Feb 21 11:08:43 2011 +0100
@@ -0,0 +1,65 @@
+#!/bin/bash
+
+# Copyright (C) 2011, Xerxes Ranby <xerxes@zafena.se>
+# This wget cache wrapper is free software; you can redistribute it
+# and/or modify it under the terms of the GNU General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+# http://www.gnu.org/copyleft/gpl.html
+
+# This is a wrapper for wget that caches files fetched using
+# wget foo -O files
+
+# This wget cache wrapper are currently being run on the buildslaves 
+# jaunty-ia32, natty-armv7l and squeeze-armv7l connected to the
+# http://builder.classpath.org/icedtea/buildbot/ buildmaster 
+# to prevent the buildslaves to re-download all openjdk drops for each build
+
+##### Please configure me to match your setup.
+
+WGET=/usr/bin/wget.real
+CACHEDIR=/home/wgetcache/
+
+##### Please do not change anything below this line
+
+TARGETDIR=$(pwd)
+
+#remeber all arguments to wget
+ALLARG=$*
+
+#find out if the last argument are -O file
+FILEINDEX=$#
+shift $((${FILEINDEX}-2))
+ARG=$1
+FILE=$2
+
+if [ ${ARG} == "-O" ] ; then
+  if [ ! -e ${CACHEDIR}${FILE} ]; then
+    # file do not exist in cache
+    # download the file to the cache using wget!
+    cd ${CACHEDIR}
+
+    # make sure subdirs in the cache exist
+    CACHEDIRSUBPATH=$(dirname ${FILE})
+    mkdir -p ${CACHEDIRSUBPATH}
+
+    ${WGET} ${ALLARG}
+  fi
+
+  if [ -e ${CACHEDIR}${FILE} ] ; then
+    # ok good, file exist now in cache
+    # copy the file from cache to destination
+    cd ${TARGETDIR}
+    cp ${CACHEDIR}${FILE} ${FILE}
+    exit 0
+  else
+    #something got wrong
+    exit 1
+  fi
+else
+  # Last argument are something else than -O file
+  # We do not know how to cache this.... sorry.
+  # instead we simply run wget with all passed arguments
+  # and pretend we dont exist
+  ${WGET} ${ALLARG}
+fi