X-Git-Url: http://git.linux-vserver.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=scripts%2Fvserver-setup.functions;h=b535203fadc19b0d353a4564830ceb9f54403079;hb=beb9603e6f1109c4b7022a34dfdae1b49f502954;hp=cb484fdb934eec8a5f550b43a910ed3b3fae1837;hpb=754434fee29f02326853e656fbf0a6bea5c63ea4;p=util-vserver.git diff --git a/scripts/vserver-setup.functions b/scripts/vserver-setup.functions index cb484fd..b535203 100644 --- a/scripts/vserver-setup.functions +++ b/scripts/vserver-setup.functions @@ -34,8 +34,8 @@ declare -a SETUP_FLAGS=() declare -r SETUP_OPTIONS="confdir:,lockfile:,hostname:,netdev:,netmask:,netprefix:,netbcast:,interface:,flags:,context:,initstyle:,cpuset:,cpusetcpus:,cpusetmems:,cpusetvirt" declare -r SETUP_HELPMSG=$" - --context ... the static context of the vserver [default: none; a dynamic - context will be assumed] + --context ... the static context of the vserver [default: none; one will + be generated for you] --confdir ... [default: $__CONFDIR/] --lockfile ... [default: $__RUNDIR/] @@ -133,9 +133,14 @@ function _setup_writeInterface tmp=${tmp##${name}=} local dev=${tmp%%:*} - test "$dev" != "$tmp" || dev= + local nodev= + test "$dev" != "$tmp" || dev= tmp=${tmp##${dev}:} + test "$dev" != "nodev" || { + dev= + nodev=1 + } local mask=${tmp##*/} test "$mask" != "$tmp" || mask= @@ -156,8 +161,11 @@ function _setup_writeInterface _setup_writeSingleOption "$mask" $d/mask _setup_writeSingleOption "$prefix" $d/prefix - test -n "$dev" -o -n "$SETUP_NETDEV" || \ - echo $"No device specified for interface '$idx'; do not forget to set the 'nodev' option" >&2 + test -n "$dev" -o -n "$SETUP_NETDEV" || { + test -n "$nodev" || \ + echo $"No device specified for interface '$idx'; setting 'nodev'" >&2 + $_TOUCH $d/nodev + } } function setup_setDefaults @@ -167,6 +175,18 @@ function setup_setDefaults findFile SETUP_FSTAB "$__CONFDIR"/.defaults/fstab "$__PKGLIBDEFAULTDIR"/fstab } +function _setup_generateContext +{ + if test -z "$SETUP_CONTEXT" && test ! -e "$__CONFDIR/.defaults/context.dynamic"; then + if test -e "$__CONFDIR/.defaults/context.next"; then + SETUP_CONTEXT=`$_CAT "$__CONFDIR/.defaults/context.next"` + else + SETUP_CONTEXT=`$_CAT "$__PKGLIBDEFAULTDIR/context.start"` + fi + expr "$SETUP_CONTEXT" + 1 > "$__CONFDIR/.defaults/context.next" + fi +} + function setup_writeOption { local name=$1 @@ -175,6 +195,8 @@ function setup_writeOption mkdir -p "$cfgdir"/interfaces "$cfgdir"/apps/init "$cfgdir"/uts "$cfgdir"/cpuset + _setup_generateContext + _setup_writeSingleOption "$name" "$cfgdir"/name _setup_writeSingleOption "$SETUP_CONTEXT" "$cfgdir"/context _setup_writeSingleOption "$SETUP_HOSTNAME" "$cfgdir"/uts/nodename @@ -198,7 +220,7 @@ function setup_writeOption test -z "$SETUP_FLAGS" || for i in "${SETUP_FLAGS[@]}"; do echo "$i" - done >"$cfgdir"/flags + done >"$cfgdir"/cflags ln -s "$SETUP_LOCKFILE" "$cfgdir"/run }