Adding live-initramfs 1.96.2-1.
[live-boot-grml.git] / bin / live-snapshot
index e3e05fe..a7214bd 100755 (executable)
@@ -1,10 +1,10 @@
 #! /bin/bash
 
-# casper-snapshot - utility to manage Debian Live systems snapshots
+# live-snapshot - utility to manage Debian Live systems snapshots
 #
 #   This program mount a device (fallback to /tmpfs under /mnt/snapshot
-#   and save the /cow (or a different dir) filesystem in it for reusing
-#   in another casper session. Look at manpage for more info.
+#   and save the /live/cow (or a different dir) filesystem in it for reusing
+#   in another live-initramfs session. Look at manpage for more info.
 #
 # Copyright (C) 2006 Marco Amadori <marco.amadori@gmail.com>
 #
@@ -23,7 +23,7 @@
 # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
 #
 # On Debian systems, the complete text of the GNU General Public License
-# can be found in /usr/share/common-licenses/GPL file.
+# can be found in /usr/share/common-licenses/GPL-2 file.
 
 PROGRAM="`basename $0`"
 VERSION=0.0.1
@@ -90,11 +90,11 @@ Help ()
        Header
        echo
        echo "Options:"
-       echo "  -c, --cow: specifies the copy on write directory (default: /cow)."
+       echo "  -c, --cow: specifies the copy on write directory (default: /live/cow)."
        echo "  -d, --device: specifies the output snapshot device (default: none)."
        echo "  -o, --output: specifies the output image file (default: $type dependent)."
     echo "  -r, --resync-string: internally used to resync previous made snapshots."
-       echo "  -t, --type: specifies the snapshot type between \"squashfs\", \"ext2\" or \"cpio\".gz archive (default: cpio)"
+       echo "  -t, --type: specifies the snapshot type between \"squashfs\", \"ext2\", \"ext3\" or \"cpio\".gz archive (default: cpio)"
     echo -e "\nLook at live-snapshot(1) man page for more information."
        exit 0
 }
@@ -120,9 +120,9 @@ Version ()
        echo "Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA"
        echo
        echo "On Debian systems, the complete text of the GNU General Public License"
-       echo "can be found in /usr/share/common-licenses/GPL file."
+       echo "can be found in /usr/share/common-licenses/GPL-2 file."
        echo
-       echo "Homepage: <http://live.debian.net/>"
+       echo "Homepage: <http://debian-live.alioth.debian.org/>"
        exit 0
 }
 
@@ -138,7 +138,7 @@ Do_snapshot ()
                cpio)
                        ( cd "${COW}" && find . -path '*.wh.*' -prune -o -print0 | cpio --quiet -o0 -H newc | gzip -9c > "${DEST}" ) || exit 1
                        ;;
-               ext2)
+               ext2|ext3)
                        DU_DIM="`du -ks ${COW} | cut -f1`"
                        REAL_DIM="`expr ${DU_DIM} + ${DU_DIM} / 20`" # Just 5% more to be sure, need something more sophistcated here...
                        genext2fs --size-in-blocks=${REAL_DIM} --reserved-blocks=0 --root="${COW}" "${DEST}" || exit 1
@@ -154,7 +154,7 @@ Is_same_mount ()
 {
        dir1="`Base_path $1`"
        dir2="`Base_path $2`"
-       if [ "${dir1}" == "${dir2}" ]; then
+       if [ "${dir1}" = "${dir2}" ]; then
                return 0
        else
                return 1
@@ -224,7 +224,7 @@ Mount_device ()
 Defaults ()
 {
        MOUNTP="/mnt/live-snapshot"
-       COW="/cow"
+       COW="/live/cow"
        DEV=""
        DEST="${MOUNTP}/live-sn.cpio.gz"
        TYPE="cpio"
@@ -234,7 +234,7 @@ Defaults ()
                COW=$(echo "${SNAP_RSTRING}" | cut -f1 -d ':')
                DEV=$(echo "${SNAP_RSTRING}" | cut -f2 -d ':')
                DEST=$(echo "${SNAP_RSTRING}" | cut -f3 -d ':')
-               
+
                case "${DEST}" in
                        *.cpio.gz)
                                TYPE="cpio" ;;
@@ -242,22 +242,22 @@ Defaults ()
                                TYPE="squashfs" ;;
                        "")
                                TYPE="ext2" ;;
-                       *.ext2)
+                       *.ext2|*.ext3)
                                TYPE="ext2" ;;
                        *)
                                Usage "Unregognized String" ;;
                esac
        else
-               DEF_COW="/cow"
+               DEF_COW="/live/cow"
                # Bad options handling
                if [ -z "${SNAP_COW}" ]; then
                        COW="${DEF_COW}"
                else
                        COW="${SNAP_COW}"
                fi
-       
+
                case "${SNAP_TYPE}" in
-                       "cpio"|"squashfs"|"ext2")
+                       "cpio"|"squashfs"|"ext2"|"ext3")
                                TYPE="${SNAP_TYPE}"
                                ;;
                        "")
@@ -266,8 +266,8 @@ Defaults ()
                                Usage "Error: unrecognized snapshot type"
                                ;;
                esac
-               #if [ -d 
-               #if Is_same_mount 
+               #if [ -d
+               #if Is_same_mount
        fi
 
        # check vars
@@ -284,7 +284,7 @@ Clean ()
        if [ -n "$DEV" ]; then
                umount "${MOUNTP}"
                rmdir "${MOUNTP}"
-               rm 
+               #rm
        fi
 }