6474N/A#!/bin/bash
6474N/A
6474N/Aif [ -z $1 ]; then
6474N/A echo "usage: $0 <specfile1> [specfile2 ...]"
6474N/A exit 1
6474N/Afi
6474N/A
6474N/Aexport http_proxy="webcache.uk.sun.com:8080"
6821N/Aexport ftp_proxy=${http_proxy}
6474N/APULL_NEW_TARBALLS=1
6474N/A
6474N/Awhile [ $# -ne 0 ]
6474N/Ado
6474N/A specfile=$1
6474N/A
6474N/A if [ -f $specfile ]; then
6821N/A NAME=$(grep "^Name:" $specfile | sed -e "s/Name: *//" )
6821N/A NAME=$( echo $NAME ) # Gets rid of spaces and tabs that sed didn't.
6474N/A CURRENT=$(grep "^Version:" $specfile | sed -e "s/Version:[\t ]*//")
6821N/A CURRENT=$( echo $CURRENT )
6474N/A SOURCE=$(grep "^Source:" $specfile | sed -e "s/Source:[\t ]*//")
6821N/A SOURCE=$( echo $SOURCE )
6474N/A # Replace '%{Name}' with $NAME.
6474N/A SOURCE=$(echo $SOURCE | sed -e "s/\%{*[Nn]ame}*/${NAME}/g")
6821N/A #SOURCE=$(echo $SOURCE | sed -e "s/\%{*[Vv]ersion}*/${CURRENT}/g")
6821N/A SOURCEDIR=$(dirname $SOURCE)
6821N/A # Substitute '%version' if present in directory.
6821N/A SOURCEDIR=$(echo $SOURCEDIR | sed -e "s/\%{*[Vv]ersion}*/${CURRENT}/g")
6474N/A
6821N/A proto=$(echo $SOURCEDIR | cut -d ":" -f 1)
6474N/A if [ $proto != "http" -a $proto != "ftp" ]; then
6821N/A echo "Not fetching latest version for $NAME - can't use \"$SOURCEDIR\""
6474N/A else
6821N/A LATEST=$(wget $SOURCEDIR -O - 2>/dev/null | grep "LATEST-IS" | sed -e "s/.*LATEST-IS-\([0-9][0-9\.]*\).*/\1/")
6474N/A if [ -z $LATEST ]; then
6821N/A echo "Cannot get latest version of $NAME from \"$SOURCEDIR/LATEST-IS*\""
6474N/A else
6474N/A if [ $LATEST = $CURRENT ]; then
6474N/A echo "Okay with $NAME-$LATEST"
6474N/A else if [ -z $PULL_NEW_TARBALLS ]; then
6474N/A echo "Need to update to $NAME-$LATEST from $CURRENT"
6474N/A else
6474N/A# TODO: It may not be bz2!
6821N/A# TODO: Use original $SOURCE with %{Version} replaced.
6821N/A SOURCE=$(echo $SOURCE | sed -e "s/\%{*[Vv]ersion}*/${LATEST}/g")
7039N/A wget -nv --no-clobber $SOURCE
6474N/A if [ $? -eq 0 ]; then
6474N/A echo "Update $specfile to $LATEST"
6474N/A fi
6474N/A fi
6474N/A fi
6474N/A fi
6474N/A fi
6474N/A else
6474N/A echo "WARNING: $specfile does not exist."
6474N/A fi
6474N/A
6474N/A shift
6474N/Adone
6474N/A