ready for tagging
[util-vserver.git] / scripts / vserver-build.debootstrap
index 15ab88b..54f1564 100644 (file)
@@ -1,4 +1,4 @@
-# $Id: vserver-build.debootstrap 2298 2006-09-12 11:21:38Z dhozac $    --*- sh -*--
+# $Id: vserver-build.debootstrap 2574 2007-07-31 19:43:17Z dhozac $    --*- sh -*--
 
 # Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
 #  
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
 
-function cleanUp
-{
-    test ! -d "$workdir"  || $_RM -rf "$workdir"
-}
-
 function init
 {
     workdir=
-    mirror=
-    trap "cleanUp" EXIT
+    MIRROR=
+    options=
 }
 
 function initVariables
 {
     base.init
 
-    test -n "${mirror-unset}" || {
+    test -n "${MIRROR}" || {
        local aux
-       findFile aux "$__CONFDIR"/.defaults/apps/debootstrap/mirror ''
-       test -z "$aux" || read mirror <"$aux"
+       findFile aux "$__CONFDIR"/.distributions/"$DISTRIBUTION"/debootstrap.mirror \
+                    "$__CONFDIR"/.defaults/apps/debootstrap/mirror \
+                    "$__DISTRIBDIR"/"$DISTRIBUTION"/debootstrap.mirror \
+                    "$__PKGLIBDEFAULTDIR"/debootstrap.mirror ''
+       test -z "$aux" || read MIRROR <"$aux"
     }
+    local file
+    findFile file "$__CONFDIR"/.distributions/"$DISTRIBUTION"/debootstrap.options \
+                 "$__CONFDIR"/.defaults/apps/debootstrap/options ''
+    test -z "$file" || read options <"$file"
 }
 
 function initFilesystem
@@ -55,6 +57,8 @@ function findDebootstrap
         dir=$($_MKTEMPDIR -p /var/tmp debootstrap.XXXXXX)
         workdir=$dir
         dst=$dir/debootstrap.deb
+
+        base._addGeneratedFile "$workdir"
         
         findFile DEBOOTSTRAP_URI "$__CONFDIR"/.defaults/apps/debootstrap/uri "$__PKGLIBDEFAULTDIR"/debootstrap.uri
         read tmp <$DEBOOTSTRAP_URI
@@ -129,7 +133,7 @@ init
 while true; do
     case "$1" in
        (-d)            DISTRIBUTION=$2; shift;;
-       (-m)            mirror=$2;       shift;;
+       (-m)            MIRROR=$2;       shift;;
        (-s)            script=$2;       shift;;
        (--debug)       set -x;;
        (--)            shift; break ;;
@@ -150,10 +154,18 @@ setup_writeInitialFstab
 
 findDebootstrap
 
-test -z "$BUILD_INITPRE"  || "$BUILD_INITPRE" "$SETUP_CONFDIR"  "$UTIL_VSERVER_VARS"
+if test -z "$script"; then
+    findFile script "$__CONFDIR/.distributions/$DISTRIBUTION/debootstrap.script" \
+                   "$__DISTRIBDIR/$DISTRIBUTION/debootstrap.script" ''
+fi
+
+export MIRROR
+test -z "$BUILD_INITPRE"  || "$BUILD_INITPRE"  "$SETUP_CONFDIR" "$UTIL_VSERVER_VARS"
 mv "$VDIR"/dev "$VDIR"/dev.X
-"$DEBOOTSTRAP" "$@" "$DISTRIBUTION" "$VDIR" "$mirror" "$script" || :   ## HACK: ignore all errors...
+"$_VNAMESPACE" --new -- \
+    "$DEBOOTSTRAP" $options "$@" "$DISTRIBUTION" "$VDIR" "$MIRROR" "$script" || :   ## HACK: ignore all errors...
 fixupDebian "$VDIR"
 test -z "$BUILD_INITPOST" || "$BUILD_INITPOST" "$SETUP_CONFDIR" "$UTIL_VSERVER_VARS"
 
+$_RM -fr "$workdir"
 base.setSuccess