=================================================================== RCS file: /cvs/openbsd/update_openbsd/update_openbsd,v retrieving revision 1.11 retrieving revision 1.15 diff -u -r1.11 -r1.15 --- openbsd/update_openbsd/update_openbsd 2008/11/09 07:22:52 1.11 +++ openbsd/update_openbsd/update_openbsd 2008/11/19 23:02:38 1.15 @@ -1,22 +1,6 @@ #!/bin/sh -# $RedRiver: update_openbsd,v 1.10 2008/11/05 17:07:58 andrew Exp $ +# $RedRiver: update_openbsd,v 1.14 2008/11/19 22:38:00 andrew Exp $ -if [ -e /etc/update_openbsd.conf ]; then - . /etc/update_openbsd.conf -fi - -if [ -e ${HOME}/.update_openbsdrc ]; then - . ${HOME}/.update_openbsdrc -fi - -MIRROR=${MIRROR:=ftp://ftp.openbsd.org/pub/OpenBSD} -FTP_CMD=${FTP_CMD:=ftp -V} -PKG_PATH=${PKG_PATH:=/usr/ports/packages/`machine`/all/:${MIRROR}/`uname -r`/packages/`machine`/} - -DESTDIR=${DESTDIR:=/} -SYSMERGE=${SYSMERGE:=/usr/sbin/sysmerge} -FORCE_DIR=${FORCE_DIR:=No} - installed_sets() { local misc=/usr/share/doc/README local man=/usr/share/man/cat1/intro.0 @@ -40,18 +24,29 @@ fi done } -INSTALLED_SETS=${INSTALLED_SETS:=`installed_sets`} sets_exist () { local _proto=${FTP%%://*} if [ X"ftp" == X"${_proto}" ]; then echo "ls base*.tgz" | ${FTP_CMD} ${FTP}/ | awk '{ print $9 }' + elif [ X"http" == X"${_proto}" ]; then - ${FTP_CMD} -V -o - ${FTP}/ | grep '"base[0-9][0-9].tgz' | sed -e 's/.*\(base..\.tgz\).*/\1/' + ${FTP_CMD} -V -o - ${FTP}/ | + awk '/[^x]base[0-9][0-9]*\.tgz/ { + sub("^.*base","base"); + sub("\.tgz.*",".tgz"); + print $0; + }' + + elif [ X"scp" == X"${_proto}" ]; then + echo SCP is not yet supported >&2 + return 2 + else echo Unsupported FTP ${FTP} >&2 - exit 2 + return 2 + fi } @@ -102,7 +97,7 @@ if [ X"" == X"${_file}" ]; then if [ X"No" != X"$FORCE_DIR" ]; then echo No sets in forced [${FTP}] >&2 - exit 2 + return 2 fi NEW_VER=$CUR_VER @@ -112,7 +107,7 @@ _file=`sets_exist` if [ X"" == X"${_file}" ]; then echo No sets in [${FTP}] >&2 - exit 2 + return 2 fi fi @@ -121,14 +116,14 @@ if [ X"" == X"${_v}" ]; then echo No version in file [$_file] >&2 - exit 2 + return 2 elif [ X"${_cv}" == X"${_v}" ]; then NEW_VER=$CUR_VER elif [ X"${_nv}" == X"${_v}" ]; then NEW_VER=$NEW_VER else echo Invalid version [$_v] >&2 - exit 2 + return 2 fi if [ X"No" == X"$FORCE_DIR" ]; then @@ -139,7 +134,7 @@ if [ X"" == X"${_v}" ]; then echo ERROR: Unable to determine file version! >&2 - exit 1 + return 1 fi if [ X"" == X"$RELEASEDIR" ]; then @@ -154,7 +149,7 @@ echo '### GETTING SETS ###' if [ X"" == X"$FTP" ]; then echo ERROR: No FTP site set! >&2 - exit 1 + return 1 fi mkdir -p ${RELEASEDIR} @@ -186,7 +181,7 @@ if [ $? -ne 0 ]; then echo ERROR: MD5 does not match! >&2 - exit 1 + return 1 fi } @@ -221,8 +216,9 @@ local _v=$FILE_VER if [ -e base${_v}.tgz ]; then - echo Extracting new firmware from base${_v}.tgz - $SUDO tar -C $DESTDIR -xzphf base${_v}.tgz "*etc/firmware/*" + echo Extracting new firmware and ifconfig from base${_v}.tgz + $SUDO tar -C $DESTDIR -xzphf base${_v}.tgz \ + ./etc/firmware ./sbin/ifconfig fi $SUDO rm -f /obsd @@ -358,7 +354,26 @@ fi } +if [ -e /etc/update_openbsd.conf ]; then + . /etc/update_openbsd.conf +fi + +if [ -e ${HOME}/.update_openbsdrc ]; then + . ${HOME}/.update_openbsdrc +fi + +MIRROR=${MIRROR:=ftp://ftp.openbsd.org/pub/OpenBSD} +FTP_CMD=${FTP_CMD:=ftp -V} +PKG_PATH=${PKG_PATH:=/usr/ports/packages/`machine`/all/:${MIRROR}/`uname -r`/packages/`machine`/} + +DESTDIR=${DESTDIR:=/} +SYSMERGE=${SYSMERGE:=/usr/sbin/sysmerge} +FORCE_DIR=${FORCE_DIR:=No} + +INSTALLED_SETS=${INSTALLED_SETS:=`installed_sets`} + set_version +local _error=$? echo echo "-= update_openbsd - helper script to update OpenBSD =-" @@ -375,6 +390,10 @@ echo " NEW_VER: $NEW_VER" #echo " FILE_VER: $FILE_VER" echo + +if [ ${_error} -ne 0 ]; then + exit ${_error} +fi get_sets