view buildslave/tools/wget.cache.wrapper @ 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
children 72316564535a
line wrap: on
line source

#!/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