diff options
Diffstat (limited to 'debian/casper.init')
| -rw-r--r-- | debian/casper.init | 44 | 
1 files changed, 15 insertions, 29 deletions
| diff --git a/debian/casper.init b/debian/casper.init index d6ec097..6817efd 100644 --- a/debian/casper.init +++ b/debian/casper.init @@ -8,7 +8,8 @@  # Default-Start:     1 2 3 4 5  # Default-Stop:      0 6  # Short-Description: Casper init script -# Description:       Does the proper shutdown in a casper booted system. +# Description:       Resyncs snapshots, evantually caches files in order +#                    to let remove the media.  ### END INIT INFO  # Author: Tollef Fog Heen <tfheen@canonical.com> @@ -16,7 +17,8 @@  #  PATH=/usr/sbin:/usr/bin:/sbin:/bin  NAME=casper -SCRIPTNAME=/etc/init.d/$NAME +SCRIPTNAME=/etc/init.d/${NAME} +DO_SNAPSHOT=/sbin/${NAME}-snapshot  # Exit if system was not booted by casper  grep -qs boot=casper /proc/cmdline || exit 0 @@ -50,34 +52,19 @@ cache_path() {      fi  } -do_sync () -{ -    # copy the tmp media on the snapshot media -    fromdir="${1}" -    todev="${2}" -    tmnt="/mnt/temp_snap" - -    mkdir "${tmnt}" && \ -    mount "${todev}" "${tmnt}" -o rw && \ -    cd "${fromdir}" && \ -    find . -print0 | cpio -pumd0 "${tmnt}" && \ -    umount "${tmnt}" && \ -    rmdir "${tmnt}" -} -  do_stop ()  { -    # check for netboot -    if [ ! -z "${NETBOOT}" ] || grep -qs netboot /proc/cmdline || grep -qsi root=/dev/nfs /proc/cmdline  || grep -qsi root=/dev/cifs /proc/cmdline ; then -        return 0 -    fi -      if [ ! -z "${ROOTSNAP}" ]; then -        do_sync "/cow" "${ROOTSNAP}" +        $DO_SNAPSHOT --resync-string="${ROOTSNAP}"      fi      if [ ! -z "${HOMESNAP}" ]; then -        do_sync "/home" "${HOMESNAP}" +        $DO_SNAPSHOT --resync-string="${HOMESNAP}" +    fi + +    # check for netboot +    if [ ! -z "${NETBOOT}" ] || grep -qs netboot /proc/cmdline || grep -qsi root=/dev/nfs /proc/cmdline  || grep -qsi root=/dev/cifs /proc/cmdline ; then +        return 0      fi      for path in $(which halt) $(which reboot) /etc/rc?.d /etc/default; do @@ -89,9 +76,9 @@ do_stop ()      # XXX - i18n      echo "Please remove the disc and close the tray (if any) then press ENTER: "      if [ -x /sbin/usplash_write ]; then -	    /sbin/usplash_write "TIMEOUT 86400" -	    /sbin/usplash_write "TEXT-URGENT Please remove the disc, close the tray (if any)" -	    /sbin/usplash_write "TEXT-URGENT and press ENTER to continue" +        /sbin/usplash_write "TIMEOUT 86400" +        /sbin/usplash_write "TEXT-URGENT Please remove the disc, close the tray (if any)" +        /sbin/usplash_write "TEXT-URGENT and press ENTER to continue"      fi      read x < /dev/console @@ -102,7 +89,7 @@ case "$1" in          [ "$VERBOSE" != no ] && log_end_msg 0          ;;      stop) -        log_begin_msg "Caching reboot files..." +        log_begin_msg "${NAME} is resyncing snapshots and caching reboot files..."          do_stop          case "$?" in              0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; @@ -114,4 +101,3 @@ case "$1" in          exit 3          ;;  esac - | 
