#!/bin/sh -e

. /usr/share/debconf/confmodule
db_version 2.0
db_capb backup

license=ros-pepper-meshes

errmsg()
{
    echo >&2 ''
    echo >&2 "$@"
    echo >&2 "try 'dpkg-reconfigure debconf' to select a frontend other than noninteractive"
    echo >&2 ''
}

db_get ros-pepper-meshes/accepted-$license
if [ "$RET" = "true" ]; then
    echo "$license license has already been accepted" >&2
    exit 0
fi

# facilitate backup capability per debconf-devel(7)
STATE=1
while true; do
    case "$STATE" in
    0)  # ensure going back from license presentment is harmless
        STATE=1 
        continue
        ;;   
    1)  # present license
        db_fset ros-pepper-meshes/present-$license seen false
        if ! db_input critical ros-pepper-meshes/present-$license ; then
            errmsg "$license license could not be presented"
            exit 2
        fi
        db_fset ros-pepper-meshes/accepted-$license seen false
        if ! db_input critical ros-pepper-meshes/accepted-$license ; then
            errmsg "$license agree question could not be asked"
            exit 2
        fi
        ;;      
    2)  # determine users' choice
        db_get ros-pepper-meshes/accepted-$license
        if [ "$RET" = "true" ]; then
            # license accepted
            exit 0
        fi
        # error on decline license (give user chance to back up)
        db_input critical ros-pepper-meshes/error-$license
        ;;      
    3)  # user has confirmed declining license
        echo "user did not accept the $license license" >&2
        exit 1
        ;;   
    *)  # unknown state
        echo "$license license state unknown: $STATE" >&2
        exit 2
        ;;   
    esac
    if db_go; then
        STATE=$(($STATE + 1))
    else
        STATE=$(($STATE - 1))
    fi
done
 
#DEBHELPER#

# proper exit (0 or 1) above
errmsg "$license license could not be presented / was not accepted"
exit 2
