Home | History | Annotate | Download | only in scripts
      1 #!/bin/bash
      2 
      3 if [ -z $1 ]; then
      4     echo "usage: $0 <specfile1> [specfile2 ...]"
      5     exit 1
      6 fi
      7 
      8 export http_proxy="webcache.uk.sun.com:8080"
      9 export ftp_proxy=${http_proxy}
     10 PULL_NEW_TARBALLS=1
     11 
     12 while [ $# -ne 0 ]
     13 do
     14     specfile=$1
     15 
     16     if [ -f $specfile ]; then
     17         NAME=$(grep "^Name:" $specfile | sed -e "s/Name: *//" )
     18         NAME=$( echo $NAME )    # Gets rid of spaces and tabs that sed didn't.
     19         CURRENT=$(grep "^Version:" $specfile | sed -e "s/Version:[\t ]*//")
     20         CURRENT=$( echo $CURRENT )
     21         SOURCE=$(grep "^Source:" $specfile | sed -e "s/Source:[\t ]*//")
     22         SOURCE=$( echo $SOURCE )
     23         # Replace '%{Name}' with $NAME.
     24         SOURCE=$(echo $SOURCE | sed -e "s/\%{*[Nn]ame}*/${NAME}/g")
     25         #SOURCE=$(echo $SOURCE | sed -e "s/\%{*[Vv]ersion}*/${CURRENT}/g")
     26         SOURCEDIR=$(dirname $SOURCE)
     27         # Substitute '%version' if present in directory.
     28         SOURCEDIR=$(echo $SOURCEDIR | sed -e "s/\%{*[Vv]ersion}*/${CURRENT}/g")
     29     
     30         proto=$(echo $SOURCEDIR | cut -d ":" -f 1)
     31         if [ $proto != "http" -a $proto != "ftp" ]; then
     32             echo "Not fetching latest version for $NAME - can't use \"$SOURCEDIR\""
     33         else
     34 	    LATEST=$(wget $SOURCEDIR -O - 2>/dev/null | grep "LATEST-IS" | sed -e "s/.*LATEST-IS-\([0-9][0-9\.]*\).*/\1/")
     35 	    if [ -z $LATEST ]; then
     36 	        echo "Cannot get latest version of $NAME from \"$SOURCEDIR/LATEST-IS*\""
     37 	    else
     38 	        if [ $LATEST = $CURRENT ]; then
     39                     echo "Okay with $NAME-$LATEST"
     40 	        else if [ -z $PULL_NEW_TARBALLS ]; then
     41                          echo "Need to update to $NAME-$LATEST from $CURRENT"
     42 	             else
     43 # TODO: It may not be bz2!
     44 # TODO: Use original $SOURCE with %{Version} replaced.
     45                          SOURCE=$(echo $SOURCE | sed -e "s/\%{*[Vv]ersion}*/${LATEST}/g")
     46                          wget -nv --no-clobber $SOURCE
     47                          if [ $? -eq 0 ]; then
     48                              echo "Update $specfile to $LATEST"
     49                          fi
     50 	             fi
     51                 fi 
     52             fi
     53 	fi
     54     else
     55         echo "WARNING: $specfile does not exist."
     56     fi
     57 
     58     shift
     59 done
     60 
     61