[SCM] Debian Live initramfs hook branch, master, updated. 1.139.1-3-14-gbb27306
Marco Amadori
marco.amadori at gmail.com
Wed Oct 1 00:02:56 UTC 2008
The following commit has been merged in the master branch:
commit d8bdc777d760a0fadc07cb07d55431ebe6d5c9b2
Author: Marco Amadori <marco.amadori at gmail.com>
Date: Fri Sep 19 00:31:57 2008 +0200
live-snapshot: fixed include-list handling.
* When "/etc/live-snapshot.list" is present, all standard files and
directories listed there are saved on shutdown.
Now it saves them only if they are modified, and also handles
dangling symbolic links. This beaviour will be gentle to live-systems
upgrades on the same hardware since new unmodified to-be-snapshotted files
will be no more overwritten by old unnecessary saved cruft.
It still does not handle removal of deleted files.
Signed-off-by: Marco Amadori <amadorim at vdavda.com>
diff --git a/bin/live-snapshot b/bin/live-snapshot
index f77541f..5606436 100755
--- a/bin/live-snapshot
+++ b/bin/live-snapshot
@@ -320,23 +320,49 @@ Mount_device ()
esac
}
+Entry_is_modified ()
+{
+ # Returns true if file exists and it is also present in "cow" directory
+ # This means it is modified in respect to read-only media, so it deserve
+ # to be saved
+
+ entry="${1}"
+
+ if [ -e "${entry}" ] || [ -L "${entry}" ]
+ then
+ if [ -e "${DEF_SNAP_COW}/${entry}" ] || [ -L "${DEF_SNAP_COW}/${entry}" ]
+ then
+ return 0
+ fi
+ fi
+ return 1
+}
+
Do_filelist ()
{
- # BUGS: supports only cpio.gz types right now
+ # BUGS: supports only cpio.gz types, and do not handle deleted files yet
+
TMP_FILELIST=$1
if [ -f "${SNAP_LIST}" ]
then
# Generate include list
for entry in $(cat "${SNAP_LIST}" | grep -v '^#.*$' | grep -v '^ *$')
do
- if [ -f "${entry}" ]
- then
- printf "%s\000" "${entry}" >> "${TMP_FILELIST}"
- elif [ -d "${entry}" ]
+ if [ -d "${entry}" ]
then
cd /
- find "${entry}" -print0 >> "${TMP_FILELIST}"
+ find "${entry}" | while read line
+ do
+ if Entry_is_modified "${line}"
+ then
+ printf "%s\000" "${line}" >> "${TMP_FILELIST}"
+ fi
+ done
cd "${OLDPWD}"
+ elif Entry_is_modified "${entry}"
+ then
+ # if file exists and it is modified
+ printf "%s\000" "${entry}" >> "${TMP_FILELIST}"
fi
done
--
Debian Live initramfs hook
More information about the debian-live-changes
mailing list