[BACK]Return to install.sxxu CVS log [TXT][DIR] Up to [local] / openbsd / sxxu

Diff for /openbsd/sxxu/Attic/install.sxxu between version 1.5 and 1.20

version 1.5, 2010/04/20 18:25:58 version 1.20, 2013/04/20 22:36:26
Line 1 
Line 1 
 #!/bin/sh  #!/bin/ksh -
 # $Id$  # $Id$
   
 # Copyright (c) 2010 Andrew Fresh <andrew@afresh1.com>  # Copyright (c) 2010 Andrew Fresh <andrew@afresh1.com>
Line 18 
Line 18 
 # based on (and some parts taken from) siteXXtools/install.site  # based on (and some parts taken from) siteXXtools/install.site
 # Copyright (c) 2006 Alex Holst <a@mongers.org>  # Copyright (c) 2006 Alex Holst <a@mongers.org>
   
 echo XXX THIS IS NOT IN ANY WAY SHAPE OR FORM COMPLETE XXX  BASEDIR=/var/siteXX
 exit  useradd_args="-m -gid =uid"
   [ -e $BASEDIR/siteXXrc ] && . $BASEDIR/siteXXrc
   
 user_add_args="-gid =uid" # Could be in .siteXYrc  export PKG_PATH
   
 for _f in /var/siteXX/*/siteXXrc; do  do_pre() {
     . "$_f"      echo 'Running post install from sxxu'
 done  }
   
 for _f in /var/siteXX/*/*_list; do  do_post() {
     local _cmd=`basename "${_f%_list}"`      echo 'See /var/log/install.log for install messages.'
     local _args=`eval echo \\${${_cmd}_args}`  }
     echo Running $_cmd $_args  
   process_roles() {
       local _oldpwd="${PWD}"
   
       cd "${BASEDIR}"
       if [ ! -e roles ]; then
           echo 'No roles defined.'
           exit
       fi
   
       local _roles
       unset _roles
       set -A _roles
       local _role
       while read _role; do
       if [ -n "${_role}" ]; then
               _role=${_role%%#*}              # strip comments
               test -z "$_role" && continue
               _roles[${#_roles[@]}]="$_role"
       fi
       done < roles
   
       for _role in "${_roles[@]}"; do
           apply_role "$_role"
       done
   
       cd "${_oldpwd}"
   }
   
   
   append_pkg_path() {
       [ -e pkg_path -o -d packages ] || return
   
       echo ' ==> Setting PKG_PATH'
       [ -d packages ] && PKG_PATH="${PKG_PATH}:${PWD}/packages"
       [ -e pkg_path ] || return;
     local _line      local _line
     while read _line; do      while read _line; do
         ${_cmd} ${_args} ${_line}          _line=${_line%%#*}              # strip comments
     done < $f          [ -z "$_line" ] && continue
 done          PKG_PATH="${PKG_PATH}:${_line}"
       done < pkg_path
   
       PKG_PATH=`eval echo $PKG_PATH | sed -e 's/^:*//'`
   }
   
   run_command_lists() {
       local _f
       for _f in *_list; do
           [ ! -f "${_f}" ] && continue
   
           local _cmd=`basename "${_f%_list}"`
           local _args=`eval echo \\${${_cmd}_args}`
   
           echo " ==> Running $_cmd $_args"
           local _line
           while read _line; do
               _line=${_line%%#*}              # strip comments
               test -z "$_line" && continue
               echo "  => ${_cmd} ${_args} ${_line}"
               eval ${_cmd} ${_args} ${_line}
           done < "${_f}"
       done
   }
   
   apply_patches() {
       [ ! -d patches ] && return
   
       echo ' ==> Applying patches'
       local _p
       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 -d / < "$_p"
       done
   }
   
   install_packages() {
       [ ! -d packages ] && return
   
       echo ' ==> Installing packages'
       find packages -name '*.tgz' -print0 | xargs -0 pkg_add ${pkg_add_args}
   }
   
   apply_role() {
       local _role="$1"
   
       local _oldpwd="${PWD}"
       local _rolepwd="${BASEDIR}/${_role}"
   
       if [ ! -d "${_rolepwd}" ]; then
           echo "===> Missing ${_role}"
           return
       fi
   
       echo "===> Applying role ${_role}"
   
       cd "${_rolepwd}"
       if [ -e ./siteXXrc ]; then
           echo ' ==> Including siteXXrc'
           . ./siteXXrc
       fi
   
       cd "${_rolepwd}" && append_pkg_path
       cd "${_rolepwd}" && run_command_lists
       cd "${_rolepwd}" && apply_patches
       cd "${_rolepwd}" && install_packages
   
       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
           fi
       fi
   
       cd "${_oldpwd}"
   }
   
   
   if [ ! -d "${BASEDIR}" ]; then
       echo Nothing to do.
       exit
   fi
   
   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

Legend:
Removed from v.1.5  
changed lines
  Added in v.1.20

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>