=================================================================== RCS file: /cvs/openbsd/sxxu/Attic/install.sxxu,v retrieving revision 1.6 retrieving revision 1.13 diff -u -r1.6 -r1.13 --- openbsd/sxxu/Attic/install.sxxu 2010/04/20 18:25:59 1.6 +++ openbsd/sxxu/Attic/install.sxxu 2010/04/22 23:01:41 1.13 @@ -1,5 +1,5 @@ #!/bin/ksh - -# $Id: install.sxxu,v 1.6 2010/04/20 17:25:59 andrew Exp $ +# $Id: install.sxxu,v 1.13 2010/04/22 22:01:41 andrew Exp $ # Copyright (c) 2010 Andrew Fresh # @@ -19,7 +19,7 @@ # Copyright (c) 2006 Alex Holst BASEDIR=/var/siteXX -user_add_args="-m -gid =uid" +useradd_args="-m -gid =uid" [ -e /var/siteXX/siteXXrc ] && . /var/siteXX/siteXXrc export PKG_PATH @@ -45,7 +45,9 @@ set -A _roles local _role while read _role; do - _roles[${#_roles[@]}]="$_role" + if [ -n "${_role}" ]; then + _roles[${#_roles[@]}]="$_role" + fi done < roles for _role in "${_roles[@]}"; do @@ -68,6 +70,7 @@ PKG_PATH="${PKG_PATH}:${_line}" fi done < pkg_path + PKG_PATH=`eval echo $PKG_PATH` } run_command_lists() { @@ -92,12 +95,13 @@ echo ' ==> Applying patches' local _p - for _p in /patches/*; do + for _p in patches/*; do + [ X"patches/*" == X"${_p}" ] && continue echo " => $_p" # -N Always assume a forward patch. # -t Never prompt; assume the user is expert # -p0 full path, always - patch -N -t -p0 < $_p + patch -N -t -p0 -d / < $_p done } @@ -111,33 +115,35 @@ apply_role() { local _role="$1" - if [ ! -d "${_role}" ]; then + local _oldpwd="${PWD}" + local _rolepwd="${BASEDIR}/${_role}" + + if [ ! -d "${_rolepwd}" ]; then echo "===> Missing ${_role}" return fi echo "===> Applying ${_role}" - local _oldpwd="${PWD}" - cd "${_role}" - - if [ -e siteXXrc ]; then + cd "${_rolepwd}" + if [ -e ./siteXXrc ]; then echo ' ==> Including siteXXrc' - . siteXXrc + . ./siteXXrc fi - append_pkg_path - run_command_lists - apply_patches - install_packages + cd "${_rolepwd}" && append_pkg_path + cd "${_rolepwd}" && run_command_lists + cd "${_rolepwd}" && apply_patches + cd "${_rolepwd}" && install_packages - if [ -e install.site ]; then - if [ -x install.site ]; then + cd "${_rolepwd}" + if [ -e ./install.site ]; then + if [ -x ./install.site ]; then echo ' ==> Running install.site' ./install.site else echo ' ==> Including install.site' - . install.site + . ./install.site fi fi @@ -150,6 +156,7 @@ exit fi -do_pre -process_roles -do_post +do_pre 2>&1 | /usr/bin/tee /var/log/install.log +process_roles 2>&1 | /usr/bin/tee -a /var/log/install.log | grep '^...>' +do_post 2>&1 | /usr/bin/tee -a /var/log/install.log | grep '^...>' +echo See /var/log/install.log for install messages.