Transforming persistence_excludes bottom script into normal live-boot script.
authorDaniel Baumann <daniel@debian.org>
Tue, 5 Jun 2012 17:13:24 +0000 (19:13 +0200)
committerDaniel Baumann <daniel@debian.org>
Tue, 5 Jun 2012 17:35:57 +0000 (19:35 +0200)
initramfs-tools/scripts/live-bottom/08persistence_excludes [deleted file]
scripts/boot.sh
scripts/boot/persistence-excludes.sh [new file with mode: 0755]

diff --git a/initramfs-tools/scripts/live-bottom/08persistence_excludes b/initramfs-tools/scripts/live-bottom/08persistence_excludes
deleted file mode 100755 (executable)
index 04c685d..0000000
+++ /dev/null
@@ -1,79 +0,0 @@
-#!/bin/sh
-
-# Persistence enhancer script
-# This script saves precious time on slow persistence devices/image files
-# and writes on flash based device.
-# a tmpfs on $PERSTMP is mounted and directories listed in
-# /etc/live-persistence.binds will be copied there and then bind mounted back.
-
-#set -e
-
-# initramfs-tools header
-
-PREREQ=""
-
-prereqs()
-{
-       echo "${PREREQ}"
-}
-
-case "${1}" in
-       prereqs)
-               prereqs
-               exit 0
-               ;;
-esac
-
-# live-boot header
-
-if [ -z "${PERSISTENCE}" ] || [ -n "${NOPERSISTENCE}" ] || [ -z "${PERSISTENCE_IS_ON}" ] || [ ! -f /root/etc/live-persistence.binds ]
-then
-       exit 0
-fi
-
-# FIXME: stop hardcoding overloading of initramfs-tools functions
-. /scripts/functions
-. /lib/live/boot/initramfs-tools.sh
-
-# live-boot script
-
-dirs="$(sed -e '/^ *$/d' -e '/^#.*$/d' /root/etc/live-persistence.binds | tr '\n' '\0')"
-if [ -z "${dirs}" ]
-then
-       exit 0
-fi
-
-log_begin_msg "Moving persistence bind mounts"
-
-PERSTMP="/root/live/persistence-binds"
-CPIO="/bin/cpio"
-
-if [ ! -d "${PERSTMP}" ]
-then
-       mkdir -p "${PERSTMP}"
-fi
-
-mount -t tmpfs tmpfs "${PERSTMP}"
-
-for dir in $(echo "${dirs}" | tr '\0' '\n')
-do
-       if [ ! -e "/root/${dir}" ] && [ ! -L "/root/${dir}" ]
-       then
-               # directory do not exists, create it
-               mkdir -p "/root/${dir}"
-       elif [ ! -d "/root/${dir}" ]
-       then
-               # it is not a directory, skip it
-               break
-       fi
-
-       # Copy previous content if any
-       cd "/root/${dir}"
-       find . -print0 | ${CPIO} -pumd0 "${PERSTMP}/${dir}"
-       cd "${OLDPWD}"
-
-       # Bind mount it to origin
-       mount -o bind "${PERSTMP}/${dir}" "/root/${dir}"
-done
-
-log_end_msg
index 94f5e18..4391a1e 100755 (executable)
@@ -635,6 +635,8 @@ mountroot ()
                panic "A wrong rootfs was mounted."
        fi
 
+       persistence_exclude
+
        maybe_break live-bottom
        log_begin_msg "Running /scripts/live-bottom\n"
 
diff --git a/scripts/boot/persistence-excludes.sh b/scripts/boot/persistence-excludes.sh
new file mode 100755 (executable)
index 0000000..ee9521e
--- /dev/null
@@ -0,0 +1,62 @@
+#!/bin/sh
+
+#set -e
+
+persistence_exclude ()
+{
+       # Persistence enhancer script
+       # This script saves precious time on slow persistence devices/image files
+       # and writes on flash based device.
+       # a tmpfs on $PERSTMP is mounted and directories listed in
+       # /etc/live-persistence.binds will be copied there and then bind mounted back.
+
+       if [ -z "${PERSISTENCE}" ] || [ -n "${NOPERSISTENCE}" ] || [ -z "${PERSISTENCE_IS_ON}" ] || [ ! -f /root/etc/live-persistence.binds ]
+       then
+               return
+       fi
+
+       # FIXME: stop hardcoding overloading of initramfs-tools functions
+       . /scripts/functions
+       . /lib/live/boot/initramfs-tools.sh
+
+       dirs="$(sed -e '/^ *$/d' -e '/^#.*$/d' /root/etc/live-persistence.binds | tr '\n' '\0')"
+       if [ -z "${dirs}" ]
+       then
+               return
+       fi
+
+       log_begin_msg "Moving persistence bind mounts"
+
+       PERSTMP="/root/live/persistence-binds"
+       CPIO="/bin/cpio"
+
+       if [ ! -d "${PERSTMP}" ]
+       then
+               mkdir -p "${PERSTMP}"
+       fi
+
+       mount -t tmpfs tmpfs "${PERSTMP}"
+
+       for dir in $(echo "${dirs}" | tr '\0' '\n')
+       do
+               if [ ! -e "/root/${dir}" ] && [ ! -L "/root/${dir}" ]
+               then
+                       # directory do not exists, create it
+                       mkdir -p "/root/${dir}"
+               elif [ ! -d "/root/${dir}" ]
+               then
+                       # it is not a directory, skip it
+                       break
+               fi
+
+               # Copy previous content if any
+               cd "/root/${dir}"
+               find . -print0 | ${CPIO} -pumd0 "${PERSTMP}/${dir}"
+               cd "${OLDPWD}"
+
+               # Bind mount it to origin
+               mount -o bind "${PERSTMP}/${dir}" "/root/${dir}"
+       done
+
+       log_end_msg
+}