X-Git-Url: https://git.grml.org/?p=grml-debootstrap.git;a=blobdiff_plain;f=chroot-script;h=eaf39f666fcc274941d94c8baf977065202632fe;hp=f221d500aa4eccae6760becbd62936057b5ece56;hb=4040ae3e3763818f6002af85aec8e9ed7c905c56;hpb=df0f07e25b7de55740c79376b65cf962ffb3833f diff --git a/chroot-script b/chroot-script index f221d50..eaf39f6 100755 --- a/chroot-script +++ b/chroot-script @@ -44,6 +44,7 @@ stage() { # define chroot mirror {{{ chrootmirror() { + [ -n "$KEEP_SRC_LIST" ] && return if [ -n "$ISO" ] ; then echo "deb $ISO $RELEASE main contrib" > /etc/apt/sources.list [ -n "$CHROOTMIRROR" ] && echo "deb $CHROOTMIRROR $RELEASE main contrib non-free" >> /etc/apt/sources.list @@ -58,7 +59,9 @@ chrootmirror() { # set up grml repository {{{ grmlrepos() { if [ -n "$GRMLREPOS" ] ; then - cat >> /etc/apt/sources.list << EOF + # user might have provided their own apt sources.list + if ! grep -q grml /etc/apt/sources.list 2>/dev/null ; then + cat >> /etc/apt/sources.list << EOF # grml: stable repository: deb http://deb.grml.org/ grml-stable main @@ -69,6 +72,8 @@ grmlrepos() { deb-src http://deb.grml.org/ grml-testing main EOF + fi + # make sure we have the keys available for aptitude gpg --keyserver subkeys.pgp.net --recv-keys F61E2E7CECDEA787 gpg --export F61E2E7CECDEA787 | apt-key add - || /bin/true # not yet sure @@ -133,8 +138,10 @@ EOF packages() { # Pre-seed the debconf database with answers. Each question will be marked # as seen to prevent debconf from asking the question interactively. - [ -f /etc/debootstrap/debconf-selections ] && \ + [ -f /etc/debootstrap/debconf-selections ] && { + echo "Preseeding the debconf database, some lines might be skipped..." cat /etc/debootstrap/debconf-selections | debconf-set-selections + } if [ "$PACKAGES" = 'yes' ] ; then if ! [ -r /etc/debootstrap/packages ] ; then @@ -249,7 +256,7 @@ hosts() { # set up /etc/network/interfaces {{{ interfaces() { - if ! [ -r /etc/network/interfaces ] ; then + if ! [ -r /etc/network/interfaces ] || ! grep -q "auto lo" /etc/network/interfaces ; then echo "Setting up /etc/network/interfaces" cat >> /etc/network/interfaces << EOF @@ -317,6 +324,11 @@ hostname() { if [ -n "$HOSTNAME" ] ; then echo "Setting hostname to ${HOSTNAME}." echo "$HOSTNAME" > /etc/hostname + + # adjust postfix configuration + if [ -r /etc/postfix/main.cf ] ; then + sed -i "s/grml/$HOSTNAME/g" /etc/postfix/main.cf + fi fi } # }}} @@ -381,6 +393,17 @@ grub() { } # }}} +# execute all scripts present in /etc/debootstrap/chroot-scripts/ {{{ +custom_scripts() { + [ -d /etc/debootstrap/chroot-scripts/ ] || return 0 + + for script in /etc/debootstrap/chroot-scripts/* ; do + echo "Executing script $script" + $script && echo "done" || echo "failed" + done +} +# }}} + # make sure we don't have any running processes left {{{ services() { for service in ssh mdadm mdadm-raid ; do @@ -406,10 +429,11 @@ finalize() { # execute the functions {{{ for i in chrootmirror grmlrepos kernelimg_conf makedev install_policy_rcd \ packages extrapackages mkinitrd kernel reconfigure hosts interfaces \ - timezone fstab hostname initrd grub passwords services finalize ; do - if stage $i ; then + timezone fstab hostname initrd grub passwords custom_scripts \ + services finalize ; do + if stage $i ; then $i && stage $i done || exit 1 - fi + fi done # }}}