#!/bin/bash

### BEGIN INIT INFO
# Provides:          hashboot
# Required-Start:    $mountall
# Required-Stop:
# Default-Start:     S
# Default-Stop:
# Short-Description: Check integrity of files in /boot
### END INIT INFO

#PATH=/sbin:/bin:/usr/bin:/usr

# See if hashboot is accessible
test -x $(which hashboot) || exit 255

case "$1" in
    start)
        log_daemon_msg "Checking integrity of files in /boot"

        hashboot check
        ret=$?
        if [ ${ret} -ge 1 ] && [ ${ret} -le 3 ] || [ ${ret} -ge 10 ] && [ ${ret} -le 13 ]; then
            log_end_msg ${ret}

            echo -n "Recover files? [y/N] "
            read -r yesno
            if [ "${yesno}" == "y" ]; then
                hashboot recover
            fi

            echo "Dropping to shell. Type exit to continue."
            sh
            exit ${ret}
        elif [ ${ret} != 0 ]; then
             log_end_msg ${ret}
             eerror "Unexpected error number ${ret}."
             exit ${ret}
        fi

        log_end_msg 0
        ;;
    stop)
        # No-op
        ;;
    restart|reload|force-reload|status)
        echo "Error: argument '$1' not supported" >&2
        exit 1
        ;;
    *)
        echo "Usage: /etc/init.d/hashboot {start|stop}"
        exit 1
        ;;
esac

exit 0