1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
|
#!/bin/sh -e
. /usr/share/debconf/confmodule
db_version 2.0
db_capb backup
license=sun-dlj-v1-1
errmsg()
{
echo >&2 ''
echo >&2 "$@"
echo >&2 "try 'dpkg-reconfigure debconf' to select a frontend other than noninteractive"
echo >&2 ''
}
db_get shared/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 shared/present-$license seen false
if ! db_input critical shared/present-$license ; then
errmsg "$license license could not be presented"
exit 2
fi
db_fset shared/accepted-$license seen false
if ! db_input critical shared/accepted-$license ; then
errmsg "$license agree question could not be asked"
exit 2
fi
;;
2) # determine users' choice
db_get shared/accepted-$license
if [ "$RET" = "true" ]; then
# license accepted
exit 0
fi
# error on decline license (give user chance to back up)
db_input critical shared/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
|