X-Git-Url: http://git.grml.org/?a=blobdiff_plain;f=bin%2Flive-snapshot;h=03245ea6e251f699afd0a35c3b8a32b54fa88420;hb=b7e456cbafb2d594a9f9317f11a99740bd1af4d6;hp=70073fc6f54dd516b780e9863265bfb6e5b9adce;hpb=aab75484c29a3c2ce95d2e23148970debfbd2a69;p=live-boot-grml.git diff --git a/bin/live-snapshot b/bin/live-snapshot index 70073fc..03245ea 100755 --- a/bin/live-snapshot +++ b/bin/live-snapshot @@ -6,7 +6,7 @@ # and saves the /live/cow (or a different dir) filesystem in it for reuse # in another live-initramfs session. Look at manpage for more info. # -# Copyright (C) 2006 Marco Amadori +# Copyright (C) 2006-2008 Marco Amadori # Copyright (C) 2008 Chris Lamb # # This program is free software; you can redistribute it and/or modify @@ -42,6 +42,7 @@ SAFE_TMPDIR="/live" MOUNTP="$(mktemp -d -p ${SAFE_TMPDIR} live-snapshot-mnt.XXXXXX)" SNAP_COW="/live/cow" SNAP_DEV="" +SNAP_OUTPUT="" DEST="${MOUNTP}/live-sn.cpio.gz" SNAP_TYPE="cpio" DESKTOP_LINK="/home/${USERNAME}/Desktop/live-snapshot" @@ -95,13 +96,13 @@ Usage () exit 0 } - Version () { echo "${PROGRAM}" echo echo "Copyright (C) 2006 Marco Amadori " + echo "Copyright (C) 2008 Chris Lamb " echo echo "This program is free software; you can redistribute it and/or modify" echo "it under the terms of the GNU General Public License as published by" @@ -125,19 +126,6 @@ Version () exit 0 } -Is_same_mount () -{ - dir1="$(Base_path ${1})" - dir2="$(Base_path ${2})" - - if [ "${dir1}" = "${dir2}" ] - then - return 0 - else - return 1 - fi -} - Parse_args () { # Parse command line @@ -197,7 +185,6 @@ Parse_args () esac done - } Defaults () @@ -207,7 +194,7 @@ Defaults () then SNAP_COW=$(echo "${SNAP_RESYNC_STRING}" | cut -f1 -d ':') SNAP_DEV=$(echo "${SNAP_RESYNC_STRING}" | cut -f2 -d ':') - DEST=$(echo "${SNAP_RESYNC_STRING}" | cut -f3 -d ':') + DEST="${MOUNTP}/$(echo ${SNAP_RESYNC_STRING} | cut -f3 -d ':')" case "${DEST}" in *.cpio.gz) @@ -229,8 +216,8 @@ Defaults () Error "unrecognized resync string" ;; esac - - else + elif [ -z "${SNAP_OUTPUT}" ] + then # Set target file based on image case "${SNAP_TYPE}" in cpio) @@ -245,15 +232,17 @@ Defaults () DEST="${MOUNTP}/live-sn.ext2" ;; esac + else + DEST="${SNAP_OUTPUT}" fi - } Validate_input () { - case "${SNAP_TYPE}" in + case "${SNAP_TYPE}" in cpio|squashfs|jffs2|ext2|ext3) ;; + *) Error "invalid filesystem type \"${SNAP_TYPE}\"" ;; @@ -272,13 +261,12 @@ Validate_input () Mount_device () { - mkdir -p "${MOUNTP}" - case "${SNAP_DEV}" in "") # create a temp mount -t tmpfs -o rw tmpfs "${MOUNTP}" ;; + *) if [ -b "${SNAP_DEV}" ] then @@ -333,7 +321,7 @@ Main () Parse_args "${@}" Defaults Validate_input - trap 'Clean' EXIT + trap 'Clean' EXIT Mount_device Do_snapshot }