X-Git-Url: http://git.linux-vserver.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=util-vserver%2Fscripts%2Fvserver-build;h=e670c797a57badbea63f449dd8586513bf8dce13;hb=33eafdacf1a16bf8f1eadb88968f1d8166564490;hp=994e3cd20481aa9afe49b868c15ca173d57e40f9;hpb=614afad7353403e2f3bfc43177e7ab292c2ea82d;p=util-vserver.git diff --git a/util-vserver/scripts/vserver-build b/util-vserver/scripts/vserver-build index 994e3cd..e670c79 100755 --- a/util-vserver/scripts/vserver-build +++ b/util-vserver/scripts/vserver-build @@ -1,7 +1,7 @@ #! /bin/bash # $Id$ -# Copyright (C) 2003 Enrico Scholz +# Copyright (C) 2003,2004,2005 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 @@ -35,12 +35,15 @@ $"Usage: $(basename $0) -m -n --force * --rootdir --pkgbase [--] * Options: - --force ... remove/rename already existing vservers with the same name + --force ... remove/rename already existing vservers with the same + name + --keep ... do not delete generated files and directories when + build of vserver failed. -m ... use method ; see below for possible values --rootdir - ... [default: $DEFAULT_VSERVERDIR] + ... [default: $__DEFAULT_VSERVERDIR] --pkgbase - ... [default: $DEFAULT_VSERVERPKGDIR] + ... [default: $__DEFAULT_VSERVERPKGDIR] cfg-options are: $SETUP_HELPMSG @@ -56,6 +59,8 @@ Possible methods are: yum ... -- -d ... installs the base-packages of the given distribution with help of 'vyum' + rpm ... -- [-d ] --empty|([--force] [--nodeps] )+ + ... installs lists of rpm-packages skeleton ... -- [ *] ... installs a minimal skeleton filesystem, creates the configuration file and calls an optional command then @@ -72,7 +77,7 @@ function showVersion() $"vserver-build $PACKAGE_VERSION -- initializes a vserver This program is part of $PACKAGE_STRING -Copyright (C) 2003 Enrico Scholz +Copyright (C) 2003,2004,2005 Enrico Scholz This program is free software; you may redistribute it under the terms of the GNU General Public License. This program has absolutely no warranty." exit 0 @@ -83,21 +88,24 @@ the GNU General Public License. This program has absolutely no warranty." set -e declare -a default_opts=() -test "$NO_DEFAULT_OPTS" || getFileArray default_opts "$CONFDIR/.defaults/apps/build/options" || : +test -n "$NO_DEFAULT_OPTS" || getFileArray default_opts "$__CONFDIR/.defaults/apps/build/options" || : -tmp=$(getopt -o +m:n: --long force,debug,help,version,rootdir:,pkgbase:,$SETUP_OPTIONS -n "$(basename $0)" -- \ +tmp=$(getopt -o +m:n: --long keep,force,debug,help,version,rootdir:,pkgbase:,$SETUP_OPTIONS -n "$(basename $0)" -- \ "${default_opts[@]}" "$@") || exit 1 eval set -- "$tmp" VSERVER_NAME= OPTION_FORCE= +OPTION_DEBUG=0 +OPTION_KEEP=1 while true; do case "$1" in (--help) showHelp $0 ;; (--version) showVersion ;; (--force) OPTION_FORCE=1;; - (--debug) set -x;; + (--keep) OPTION_KEEP=1;; + (--debug) let ++OPTION_DEBUG; set -x;; (--rootdir) ROOTDIR=$2; shift;; (--pkgbase) PKGCFGBASE=$2; shift;; (-m) method=$2; shift;; @@ -105,28 +113,22 @@ while true; do (--) shift; break;; (*) { setup_setOption2 "$1" "$2" && shift; } || \ - { echo $"vserver-build: internal error."; exit 1; } >&2 + panic $"vserver-build: internal error." ;; esac shift done -test "$VSERVER_NAME" || { - echo $"Name of vserver not specified" - exit 1 -} >&2 +test -n "$VSERVER_NAME" || + panic $"Name of vserver not specified" setup_setDefaults "$VSERVER_NAME" case x"$method" in (xlegacy) exec $_VSERVER_LEGACY "$VSERVER_NAME" build "$@" ;; - (xapt-rpm|xcopy|xskeleton|xdebootstrap|xyum) - . $PKGLIBDIR/vserver-build.$method - ;; - (x) echo $"No build-method specified" >&2 - exit 1 - ;; - (*) echo $"Unknown build-method '$method'" >&2 - exit 1 + (xapt-rpm|xcopy|xskeleton|xdebootstrap|xyum|xrpm) + . $__PKGLIBDIR/vserver-build.$method ;; + (x) panic $"No build-method specified";; + (*) panic $"Unknown build-method '$method'";; esac