Remove chroot-script after execution
authorMichael Prokop <mika@grml.org>
Tue, 24 Apr 2012 20:07:24 +0000 (22:07 +0200)
committerMichael Prokop <mika@grml.org>
Mon, 14 May 2012 15:41:20 +0000 (17:41 +0200)
Restumbled upon it again during a discussion with Carsten Hey <carsten@debian.org>
regarding #670106

chroot-script
grml-debootstrap

index 2512b95..7caf4dd 100755 (executable)
@@ -5,6 +5,9 @@
 # Bug-Reports:   see http://grml.org/bugs/
 # License:       This file is licensed under the GPL v2.
 ################################################################################
 # Bug-Reports:   see http://grml.org/bugs/
 # License:       This file is licensed under the GPL v2.
 ################################################################################
+# GRML_CHROOT_SCRIPT_MARKER - do not remove this line unless you want to keep
+# this script as /bin/chroot-script on your new installed system
+################################################################################
 
 . /etc/debootstrap/config    || exit 1
 . /etc/debootstrap/variables || exit 1
 
 . /etc/debootstrap/config    || exit 1
 . /etc/debootstrap/variables || exit 1
index a82aaaf..a9d5f99 100755 (executable)
@@ -1203,18 +1203,29 @@ execute_scripts() {
 # execute chroot-script {{{
 chrootscript() {
   if ! [ -r "$MNTPOINT/bin/chroot-script" ] ; then
 # execute chroot-script {{{
 chrootscript() {
   if ! [ -r "$MNTPOINT/bin/chroot-script" ] ; then
-     mount_target
+    mount_target
   fi
 
   fi
 
-  if [ -x "$MNTPOINT/bin/chroot-script" ] ; then
-     einfo "Executing chroot-script now"
-     mount --bind /dev "$MNTPOINT"/dev
-     chroot "$MNTPOINT" /bin/chroot-script ; RC=$?
-     umount "$MNTPOINT"/dev
-     eend $RC
+  if ! [ -x "$MNTPOINT/bin/chroot-script" ] ; then
+    eerror "Fatal: $MNTPOINT/bin/chroot-script could not be found."
+    eend 1
   else
   else
-     eerror "Fatal: $MNTPOINT/bin/chroot-script could not be found."
-     eend 1
+    einfo "Executing chroot-script now"
+    mount --bind /dev "$MNTPOINT"/dev
+    chroot "$MNTPOINT" /bin/chroot-script ; RC=$?
+    umount "$MNTPOINT"/dev
+    eend $RC
+  fi
+
+  # finally get rid of chroot-script again, there's no good reason to
+  # keep it on the installed system
+  if grep -q GRML_CHROOT_SCRIPT_MARKER "${MNTPOINT}/bin/chroot-script" ; then
+    einfo "Removing chroot-script again"
+    rm -f "${MNTPOINT}/bin/chroot-script"
+    eend $?
+  else
+    einfo "Keeping chroot-script as string GRML_CHROOT_SCRIPT_MARKER could not be found"
+    eend 0
   fi
 }
 # }}}
   fi
 }
 # }}}