vcontext uses MNT_DETACH too.
[util-vserver.git] / scripts / vserver-build.clone
1 # $Id$  --*- sh -*--
2
3 # Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
4 #  
5 # This program is free software; you can redistribute it and/or modify
6 # it under the terms of the GNU General Public License as published by
7 # the Free Software Foundation; version 2 of the License.
8 #  
9 # This program is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12 # GNU General Public License for more details.
13 #  
14 # You should have received a copy of the GNU General Public License
15 # along with this program; if not, write to the Free Software
16 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
17
18 tmp=$(getopt -o '+d:s:o:X:' --long debug,pkgmgmt,source:,exclude-from: -n "$0" -- "$@") || exit 1
19 eval set -- "$tmp"
20
21 . "$_LIB_VSERVER_BUILD_FUNCTIONS_PKGMGMT"
22
23 DISTRIBUTION=:
24 use_pkgmgmt=
25 SOURCE=
26 EXCLUDES=
27 while true; do
28     case "$1" in
29         -d)             DISTRIBUTION=$2; shift;;
30         --debug)        set -x;;
31         --pkgmgmt)      use_pkgmgmt=1;;
32         -s|--source)    SOURCE=$2; shift;;
33         -X|--exclude-from)
34                         EXCLUDES=$2; shift;;
35         --)             shift; break ;;
36         *)              echo "vserver-build.clone: internal error: unrecognized option '$1'" >&2
37                         exit 1
38                         ;;
39     esac
40     shift
41 done
42
43 if test -d "$SOURCE"; then
44     :
45 elif test -d "$__CONFDIR/$SOURCE"; then
46     SOURCE=`getPhysicalDir "$__CONFDIR/$SOURCE/vdir"`
47 elif test -d "$__DEFAULT_VSERVERDIR/$SOURCE"; then
48     SOURCE=`getPhysicalDir "$__DEFAULT_VSERVERDIR/$SOURCE"`
49 else
50     SOURCE=
51 fi
52
53 test -n "$SOURCE" || panic $"vserver-build.clone: valid --source argument required"
54
55 getDistribution '' 1
56
57 base.init
58 test -z "$use_pkgmgmt" || pkgmgmt.initVariables
59
60 base.initFilesystem "$OPTION_FORCE"
61 test -z "$use_pkgmgmt" || pkgmgmt.initFilesystem "$OPTION_FORCE"
62
63
64 setup_writeOption "$VSERVER_NAME"
65 setup_writeInitialFstab
66
67 test -z "$BUILD_INITPRE"  || "$BUILD_INITPRE" "$SETUP_CONFDIR"  "$UTIL_VSERVER_VARS"
68
69 $_VCLONE ${SETUP_CONTEXT:+--xid "$SETUP_CONTEXT"} \
70          ${EXCLUDES:+--exclude-from "$EXCLUDES"} \
71          "$SOURCE"/ "$VDIR"/
72
73 test -z "$BUILD_INITPOST" || "$BUILD_INITPOST" "$SETUP_CONFDIR" "$UTIL_VSERVER_VARS"
74
75 base.setSuccess