=================================================================== RCS file: /cvs/openbsd/update_openbsd/update_openbsd,v retrieving revision 1.16 retrieving revision 1.17 diff -u -r1.16 -r1.17 --- openbsd/update_openbsd/update_openbsd 2009/01/13 21:47:49 1.16 +++ openbsd/update_openbsd/update_openbsd 2009/01/14 17:58:40 1.17 @@ -1,5 +1,5 @@ #!/bin/sh -# $RedRiver: update_openbsd,v 1.15 2008/11/19 23:02:38 andrew Exp $ +# $RedRiver: update_openbsd,v 1.16 2009/01/13 21:47:49 andrew Exp $ installed_sets() { local misc=/usr/share/doc/README @@ -90,7 +90,7 @@ fi - if [ X"" == X"${_v}" ]; then + if [ X"" != X"${MIRROR}" -a X"" == X"${_v}" ]; then if [ X"No" == X"${FORCE_DIR}" ]; then _dir=${NEW_VER} else @@ -141,7 +141,9 @@ fi FILE_VER=$_v - FTP=${MIRROR}/${_dir}/`machine` + if [ X"" != X"${MIRROR}" ]; then + FTP=${MIRROR}/${_dir}/`machine` + fi } get_sets() { @@ -174,7 +176,17 @@ echo $FTP_CMD ${FTP}/MD5 $FTP_CMD ${FTP}/MD5 fi +} +check_md5() { + echo '### CHECKING MD5 ###' + cd $RELEASEDIR + + if [ ! -e MD5 ]; then + echo MD5 File does not exist! + return 1 + fi + ls bsd* *.tgz | sed -e 's/\(.*\)/(\1)/' > index grep -f index MD5 | md5 -c @@ -184,6 +196,33 @@ fi } +check_sets() { + echo '### CHECKING SETS ###' + cd $RELEASEDIR + + local _v=$FILE_VER + + for _b in `echo /bsd* bsd bsd.mp bsd.rd | sort -u`; do + _b=${_b#/} + local _n=$_b + if [ X"bsd.sp" == X"${_n}" ]; then + _n=bsd + fi + if [ -e /${_b} -a ! -e ./${_n} ]; then + echo ${_n} does not exist + fi + done + + for _s in $INSTALLED_SETS; do + if [ ! -e ./${_s}${_v}.tgz ]; then + echo ${_s}${_v}.tgz does not exist + fi + done + + check_md5 +} + + install_kernel() { echo '### INSTALLING KERNEL ###' if [ X"$USER" != X"root" -a X"$SUDO" == X"" ]; then @@ -361,7 +400,7 @@ . ${HOME}/.update_openbsdrc fi -MIRROR=${MIRROR:=ftp://ftp.openbsd.org/pub/OpenBSD} +#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`/} @@ -394,7 +433,11 @@ exit ${_error} fi -get_sets +if [ X"" != X"${FTP}" ]; then + get_sets || exit +fi + +check_sets || exit if [ X"" != X"$SUDO" ]; then echo Please enter your sudo password if prompted.