#!/bin/bash # Copyright (C) 2006 Benedikt Boehm # # 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 # the Free Software Foundation; version 2 of the License. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ## Called as: initpost # setup environment cfgdir="$1" vdir="$cfgdir"/vdir . "$2" . "$_LIB_VSERVER_BUILD_FUNCTIONS" # vserver name NAME="$cfgdir" # go to vdir for chroot-sh pushd "$vdir" &>/dev/null # helper for sed in chroot chrootsed() { local file="$1" shift sedtmp=$($_MKTEMP chrootsed.XXXXXX) $_CHROOT_SH cat "$file" | $_SED "$@" > $sedtmp $_CHROOT_SH truncate "$file" < $sedtmp $_RM -f $sedtmp } # create a locale.gen if needed. if test -n "$LANG" && test "$LANG" != "C"; then echo $LANG $(locale charmap) | $_CHROOT_SH append /etc/locale.gen fi # make apt and friends work $_CHROOT_SH truncate /etc/apt/sources.list <>> Executing post install script ... " echo # start vserver before we can exec anything inside it $_VSERVER "$NAME" stop &>/dev/null || : startSleepingGuest "$NAME" 30 # run the configure commands from within the server 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|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 stopSleepingGuest "$NAME" &>/dev/null || : popd &>/dev/null