#! /bin/sh
#
### BEGIN INIT INFO
# Provides:          schroot
# Required-Start:    $local_fs $syslog $network $remote_fs
# Required-Stop:
# Should-Start:      lvm
# Should-Stop:
# Default-Start:     S
# Default-Stop:
# Short-Description: Recover schroot sessions.
# Description:       Activate any persistent sessions after a reboot.
#                    Setup scripts will be run to mount filesystems and
#                    bring the chroot back to a working state.
### END INIT INFO
#
# Copyright © 2006-2007  Roger Leigh <rleigh@debian.org>
# Copyright © 2007       Federico Di Gregorio <fog@debian.org>
#
# schroot is free software: you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# schroot is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program.  If not, see
# <http://www.gnu.org/licenses/>.

SCHROOT=/usr/bin/schroot
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
NAME=schroot

. /lib/lsb/init-functions

test -x $SCHROOT || exit 0

# Include schroot defaults if available
if [ -f "/etc/default/$NAME" ] ; then
    . "/etc/default/$NAME"
fi

set -e

recover_sessions()
{
    log_daemon_msg "Recovering schroot sessions"
    for chroot in `$SCHROOT --all-sessions --list --quiet`
      do
      $SCHROOT --chroot=$chroot --recover-session || true
      log_progress_msg "$chroot"
    done
    log_end_msg 0
}

end_sessions()
{
    log_daemon_msg "Ending schroot sessions"
    for chroot in `$SCHROOT --all-sessions --list --quiet`
      do
      $SCHROOT --chroot=$chroot --end-session || true
      log_progress_msg "$chroot"
    done
    log_end_msg 0
}

case "$1" in
    start|restart|force-reload)
        if [ "$SESSIONS_RECOVER" = "end" ] ; then
            end_sessions
	else
            recover_sessions
	fi
	;;
    stop)
	;;
    status)
	;;
    *)
	N=/etc/init.d/$NAME
	echo "Usage: $N {start|stop|restart|force-reload|status}" >&2
	exit 1
	;;
esac

exit 0
