X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=scripts%2Fvserver-build.template;fp=scripts%2Fvserver-build.template;h=f11853d1776c1b93b9b151deadeaae9dea9f7b7c;hb=3b34449070c0846fdc49436d1edd5916512f1644;hp=0000000000000000000000000000000000000000;hpb=7370d748ee384dd549f2947c60ebc9a647907d06;p=util-vserver.git diff --git a/scripts/vserver-build.template b/scripts/vserver-build.template new file mode 100644 index 0000000..f11853d --- /dev/null +++ b/scripts/vserver-build.template @@ -0,0 +1,99 @@ +# $Id: vserver-build.template 2358 2006-10-31 14:33:30Z hollow $ --*- 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: -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