=================================================================== RCS file: /cvs/openbsd/update_openbsd/update_openbsd,v retrieving revision 1.7 retrieving revision 1.9 diff -u -r1.7 -r1.9 --- openbsd/update_openbsd/update_openbsd 2008/10/11 23:19:52 1.7 +++ openbsd/update_openbsd/update_openbsd 2008/10/31 02:36:33 1.9 @@ -1,5 +1,5 @@ #!/bin/sh -# $RedRiver: update_openbsd,v 1.6 2008/10/11 22:14:25 andrew Exp $ +# $RedRiver: update_openbsd,v 1.8 2008/10/13 18:31:49 andrew Exp $ if [ -e /etc/update_openbsd.conf ]; then . /etc/update_openbsd.conf @@ -53,7 +53,7 @@ local _cv=`echo $CUR_VER | sed -e 's/\.//'` local _nv=`echo $NEW_VER | sed -e 's/\.//'` - local _v="" + local _v if [ X"" != X"$FORCE_DIR" -a -d $FORCE_DIR ]; then _dir=$FORCE_DIR @@ -86,14 +86,27 @@ _dir=${FORCE_DIR} fi FTP=${MIRROR}/${_dir}/`machine` + local _proto=${FTP%%://*} - local _file=`echo "ls base${_cv}.tgz" | ${FTP_CMD} ${FTP}/ | awk '{ print $9 }'` + if [ X"ftp" == X"${_proto}" ]; then + _file=`echo "ls base*.tgz" | ${FTP_CMD} ${FTP}/ | awk '{ print $9 }'` + elif [ X"http" == X"${_proto}" ]; then + _file=`${FTP_CMD} -V -o - ${FTP}/ | grep '"base[0-9][0-9].tgz' | sed -e 's/.*\(base..\.tgz\).*/\1/'` + else + echo Unsupported FTP ${FTP} >&2 + exit 2 + fi - if [ X"base${_cv}.tgz" == X"${_file}" ]; then + _v=${_file##base} + _v=${_v%%.tgz} + + if [ X"${_cv}" == X"${_v}" ]; then NEW_VER=$CUR_VER - _v=$_cv + elif [ X"${_nv}" == X"${_v}" ]; then + NEW_VER=$NEW_VER else - _v=$_nv + echo Invalid version $_v >&2 + exit 2 fi if [ X"" == X"$FORCE_DIR" ]; then @@ -110,6 +123,7 @@ if [ X"" == X"$RELEASEDIR" ]; then RELEASEDIR=`pwd`/$_dir fi + FILE_VER=$_v FTP=${MIRROR}/${_dir}/`machine` } @@ -324,15 +338,16 @@ echo "-= update_openbsd - helper script to update OpenBSD =-" echo "------------------------------------------------------" echo -echo "RELEASEDIR: $RELEASEDIR" -echo " DESTDIR: $DESTDIR" -echo " CUR_VER: $CUR_VER" -echo " NEW_VER: $NEW_VER" -#echo " FILE_VER: $FILE_VER" -echo " SUDO: $SUDO" -echo " SYSMERGE: $SYSMERGE" -echo " MIRROR: $MIRROR" -echo " SETS: $INSTALLED_SETS" +echo " SUDO: $SUDO" +echo " SYSMERGE: $SYSMERGE" +echo " MIRROR: $MIRROR" +echo " RELEASEDIR: $RELEASEDIR" +echo " DESTDIR: $DESTDIR" +echo "INSTALLED_SETS: $INSTALLED_SETS" +echo +echo " CUR_VER: $CUR_VER" +echo " NEW_VER: $NEW_VER" +#echo " FILE_VER: $FILE_VER" echo get_sets