Further /etc/runlevel.conf related fixes.
[grml-live.git] / etc / grml / fai / config / scripts / GRMLBASE / 98-clean-chroot
index 02665f6..ae2d0c1 100755 (executable)
@@ -1,25 +1,78 @@
-#!/bin/sh
-# Filename:      /etc/grml/fai/config/scripts/GRML/98-clean-chroot
+#!/bin/bash
+# Filename:      /etc/grml/fai/config/scripts/GRMLBASE/98-clean-chroot
 # Purpose:       clean up chroot system
 # 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 or any later version.
-# Latest change: Mon Sep 17 17:36:13 CEST 2007 [mika]
 ################################################################################
 
-set -u
 set -e
 
-# supported environment variables for grml_cleanup_chroot:
-#   NOCOLORS: if set it disables colors in (debugging) output
-#   LATEX_CLEANUP: remove some big directories of texlive (/usr/share/doc/texlive-*)
-#   NOONLINE: disable functions that require working network setup
-#   FAST: skip some longer tasks
-#   REMOVE_DOCS: rm -rf /usr/share/doc + /usr/share/info
+# check for policy-rc.d workaround of
+# /etc/grml/fai/config/hooks/updatebase.GRMLBASE
+if [ -r $target/usr/sbin/policy-rc.d ] ; then
+   if grep -q 'FAI_ACTION=updatebase' $target/usr/sbin/policy-rc.d ; then
+      rm -f $target/usr/sbin/policy-rc.d
+   fi
+fi
 
-cp /etc/grml/fai/grml/grml_cleanup_chroot $target/root/
-$ROOTCMD sh -c "NOCOLORS=1 /root/grml_cleanup_chroot"
-rm $target/root/grml_cleanup_chroot
+# remove some big directories when using class LATEX_CLEANUP:
+if ifclass LATEX_CLEANUP ; then
+   cp /etc/grml/fai/grml/grml_cleanup_chroot.latex_cleanup $target/root/
+   $ROOTCMD  /root/grml_cleanup_chroot.latex_cleanup
+   rm $target/root/grml_cleanup_chroot.latex_cleanup
+fi
+
+# skip tasks which require only when using class NO_ONLINE:
+if ! ifclass NO_ONLINE ; then
+   cp /etc/grml/fai/grml/grml_cleanup_chroot.online $target/root/
+   $ROOTCMD  /root/grml_cleanup_chroot.online
+   rm $target/root/grml_cleanup_chroot.online
+fi
+
+# make sure to drop from grml-small what's unnecessary:
+if ifclass GRML_SMALL ; then
+   $ROOTCMD apt-get -y --purge remove aptitude
+   for pkg in groff-base info locales man-db manpages nano; do
+     $ROOTCMD apt-get --purge remove --yes $pkg || true
+   done
+fi
+
+# drop unnecessary software:
+if ifclass GRML_SMALL || ifclass DEBORPHAN ; then
+   if [ -f /etc/grml/fai/grml/grml_cleanup_chroot.deborphan ] ; then
+      cp /etc/grml/fai/grml/grml_cleanup_chroot.deborphan $target/root/
+      $ROOTCMD  /root/grml_cleanup_chroot.deborphan
+      rm $target/root/grml_cleanup_chroot.deborphan
+   fi
+fi
+
+# remove /usr/share/doc, /usr/share/info,... only in class REMOVE_DOCS:
+# (important: remove them *after* deinstalling packages, otherwise
+# removing packages might fail due to lack of /usr/share/man/...)
+if ifclass REMOVE_DOCS ; then
+   cp /etc/grml/fai/grml/grml_cleanup_chroot.remove_docs $target/root/
+   $ROOTCMD  /root/grml_cleanup_chroot.remove_docs
+   rm $target/root/grml_cleanup_chroot.remove_docs
+fi
+# misc cleanup:
+if [ -f /etc/grml/fai/grml/grml_cleanup_chroot ] ; then
+   cp /etc/grml/fai/grml/grml_cleanup_chroot $target/root/
+   $ROOTCMD  /root/grml_cleanup_chroot
+   rm $target/root/grml_cleanup_chroot
+fi
+
+# make sure GRML_SMALL uses the appropriate configuration:
+if ifclass GRML_SMALL ; then
+   cp $target/etc/inittab.small $target/etc/inittab
+fi
+
+if ifclass RELEASE ; then
+   # Remove all FAI logs from chroot via grml-live later then:
+   touch $target/etc/grml_fai_release
+   # Remove all files inside /root/ of chroot:
+   rm -rf $target/root && mkdir -m 0755 $target/root
+fi
 
 ## END OF FILE #################################################################
 # vim:ft=sh expandtab ai tw=80 tabstop=4 shiftwidth=3