Fix syntax error in chroot-script
[grml-debootstrap.git] / chroot-script
index a75f34b..bc93353 100644 (file)
@@ -4,7 +4,7 @@
 # Authors:       grml-team (grml.org), (c) Michael Prokop <mika@grml.org>
 # Bug-Reports:   see http://grml.org/bugs/
 # License:       This file is licensed under the GPL v2.
-# Latest change: Mon Apr 16 18:39:21 CEST 2007 [mika]
+# Latest change: Mon Apr 23 12:02:03 CEST 2007 [mika]
 ################################################################################
 
 set -e # exit on any error
@@ -37,7 +37,7 @@ stage() {
      echo "$2" > "$STAGES/$1"
      return 0
   elif grep -q done "$STAGES/$1" 2>/dev/null ; then
-     echo "Notice: stage $1 has been executed already, skipping execution therefore.">&2
+     echo "[*] Notice: stage $1 has been executed already, skipping execution therefore.">&2
      return 1
   fi
 }
@@ -54,7 +54,37 @@ chrootmirror() {
 # set up grml repository {{{
 grmlrepos() {
   if [ -n "$GRMLREPOS" ] ; then
-     echo 'deb     http://grml.org/repos/ ./' >> /etc/apt/sources.list
+     cat >> /etc/apt/sources.list << EOF
+
+# grml: stable repository:
+  deb     http://deb.grml.org/ grml-stable  main
+  deb-src http://deb.grml.org/ grml-stable  main
+
+# grml: testing/development repository:
+  deb     http://deb.grml.org/ grml-testing main
+  deb-src http://deb.grml.org/ grml-testing main
+
+EOF
+     # 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
+     # why it's necessary, sometimes we get an error even though it works [mika]
+
+     # make sure we install packages from grml's pool only if not available
+     # from Debian!
+     if ! grep -q grml /etc/apt/preferences 2>/dev/null ; then
+        cat >> /etc/apt/preferences << EOF
+// debian pool (default):
+Package: *
+Pin: release o=Debian
+Pin-Priority: 996
+
+// main grml-repository:
+Package: *
+Pin: origin deb.grml.org
+Pin-Priority: 991
+EOF
+     fi
   fi
 }
 # }}}
@@ -98,11 +128,11 @@ packages() {
 
 # install extra packages {{{
 extrapackages() {
-    if [ "$EXTRAPACKAGES" = 'yes' ] ; then 
+    if [ "$EXTRAPACKAGES" = 'yes' ] ; then
         PACKAGELIST=$(find /etc/debootstrap/extrapackages -type f -name '*.deb')
         if [ -n "$PACKAGELIST" ]; then
             dpkg -i $PACKAGELIST
-            # run apt again to resolve any deps 
+            # run apt again to resolve any deps
             DEBIAN_FRONTEND=$DEBIAN_FRONTEND $APTINSTALL
         fi
     fi
@@ -378,25 +408,13 @@ finalize() {
 # }}}
 
 # execute the functions {{{
-  stage chrootmirror   && chrootmirror   && stage chrootmirror done
-  stage grmlrepos      && grmlrepos      && stage grmlrepos done
-  stage kernelimg_conf && kernelimg_conf && stage kernelimg_conf done
-  stage makedev        && makedev        && stage makedev done
-  stage packages       && packages       && stage packages done
-  stage extrapackages  && extrapackages  && stage extrapackages done
-  stage mkinitrd       && mkinitrd       && stage mkinitrd done
-  stage kernel         && kernel         && stage kernel done
-  stage reconfigure    && reconfigure    && stage reconfigure done
-  stage hosts          && hosts          && stage hosts done
-  stage interfaces     && interfaces     && stage interfaces done
-  stage timezone       && timezone       && stage timezone done
-  stage fstab          && fstab          && stage fstab done
-  stage hostname       && hostname       && stage hostname done
-  stage initrd         && initrd         && stage initrd done
-  stage grub           && grub           && stage grub done
-  stage passwords      && passwords      && stage passwords done
-  stage services       && services       && stage services done
-  stage finalize       && finalize       && stage finalize done
+ for i in chrootmirror grmlrepos kernelimg_conf makedev packages extrapackages \
+     mkinitrd kernel reconfigure hosts interfaces timezone fstab hostname \
+     initrd grub passwords services finalize ; do
+    if stage $i ; then
+       $i && stage $i done || exit 1
+    fi
+  done
 # }}}
 
 # finally exit the chroot {{{