# $Id: vserver-build.template 2532 2007-04-21 14:05:32Z dhozac $ --*- sh -*-- # Copyright (C) 2006 Enrico Scholz # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; version 2 of the License. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. tmp=$(getopt -o '+d:t:' --long debug,pkgmgmt,template:,nodevsanity -n "vserver-build.template" -- "$@") || exit 1 eval set -- "$tmp" . "$_LIB_VSERVER_BUILD_FUNCTIONS_PKGMGMT" DISTRIBUTION=: use_pkgmgmt= no_dev_sanity= declare -a TEMPLATE=() while true; do case "$1" in -d) DISTRIBUTION=$2; shift;; --debug) set -x;; --pkgmgmt) use_pkgmgmt=1;; --nodevsanity) no_dev_sanity=1;; -t|--template) case "$2" in /*) f="$2";; *) f=`pwd`/"$2";; esac TEMPLATE=( "${TEMPLATE[@]}" "$f" ) shift ;; --) shift; break ;; *) echo "vserver-build.template: internal error: unrecognized option '$1'" >&2 exit 1 ;; esac shift done getDistribution '' 1 base.init test -z "$use_pkgmgmt" || pkgmgmt.initVariables base.initFilesystem "$OPTION_FORCE" test -z "$use_pkgmgmt" || pkgmgmt.initFilesystem "$OPTION_FORCE" setup_writeOption "$VSERVER_NAME" setup_writeInitialFstab test -z "$BUILD_INITPRE" || "$BUILD_INITPRE" "$SETUP_CONFDIR" "$UTIL_VSERVER_VARS" pushd "$SETUP_CONFDIR/vdir" &> /dev/null for t in "${TEMPLATE[@]}"; do mime=$($_FILE -Nbiz -m "$_LIB_MAGIC" "$t") compression=$(echo "$mime" | $_GREP '(' | $_SED 's!.*(\(.*\))$!\1!') case "$compression" in application/x-bzip2) DECOMPRESS="$_BZIP2 -d -c";; application/x-gzip) DECOMPRESS="$_GZIP -d -c";; "") DECOMPRESS=$_CAT;; *) echo "Unsupported compression method: $compression" exit 1 ;; esac case "$mime" in application/x-tar*) EXTRACT="$_TAR -x";; application/x-cpio*) EXTRACT="$_CPIO -i";; application/x-dump*) EXTRACT="$_RESTORE -rf -";; *) echo "Unsupported packaging method: $mime" exit 1 ;; esac $DECOMPRESS "$t" | $EXTRACT done test -z "$no_dev_sanity" && { rm -rf dev/* populateDev } popd &> /dev/null test -z "$BUILD_INITPOST" || "$BUILD_INITPOST" "$SETUP_CONFDIR" "$UTIL_VSERVER_VARS" base.setSuccess