cfgdir="$1"
vdir="$cfgdir"/vdir
. "$2"
+. "$_LIB_VSERVER_BUILD_FUNCTIONS"
# vserver name
-NAME=$(< "$cfgdir"/name)
+NAME="$cfgdir"
# go to vdir for chroot-sh
-e 's/^\(\s\+splash_back\)$/#\1/'
fi
-# from here on we need to do things live in the server
-$_CHROOT_SH truncate /vserver-config.sh < "$__DISTRIBDIR"/etch/vserver-config.sh
-$_CHROOT_SH chmod 0755 /vserver-config.sh
-echo
-echo ">>> Executing post install script ... "
-echo
+# upstart fixing
+if $_CHROOT_SH testfile /sbin/initctl; then
+ for i in etc/init/*; do
+ i=${i##*/}
+ case "$i" in
+ (control-alt-delete.conf|rc.conf)
+ ;;
+ (rsyslog.conf|syslog-ng.conf)
+ ;;
+ (*)
+ chrootsed /etc/init/$i \
+ -e 's/^/#/'
+ ;;
+ esac
+ done
+ $_CHROOT_SH truncate /etc/init/vserver.conf <<EOF
+start on startup
+script
+ initctl emit virtual-filesystems
+ initctl emit local-filesystems
+ initctl emit remote-filesystems
+ initctl emit filesystem
+end script
+EOF
+fi
+
# start vserver before we can exec anything inside it
-vserver $NAME start
+$_VSERVER "$NAME" stop &>/dev/null || :
+startSleepingGuest "$NAME" 30
# run the configure commands from within the server
-vserver $NAME exec /vserver-config.sh
-$_CHROOT_SH rm /vserver-config.sh
+export LANG=C LC_ALL=C
+
+$_CHROOT_SH testfile /usr/sbin/locale-gen && \
+ $_VSERVER "$NAME" exec /usr/sbin/locale-gen
+
+have_halt=
+test "$(cat "$cfgdir"/apps/init/style 2>/dev/null)" != "plain" || \
+ have_halt=halt
+
+pushd etc/init.d &>/dev/null
+for i in *; do
+ case "$i" in
+ (sysklogd|syslog-ng|rsyslog|dsyslog)
+ ;;
+ (README|skeleton|sendsigs|single|rc|rc.local|rcS)
+ ;;
+ ($have_halt)
+ ;;
+ (*)
+ $_VSERVER "$NAME" exec update-rc.d -f "$i" remove
+ ;;
+ esac
+done
+popd &>/dev/null
# stop the vserver
-vserver $NAME stop
+stopSleepingGuest "$NAME" &>/dev/null || :
popd &>/dev/null