#!/bin/bash
# postinst script for common-lisp-controller
#
# see: dh_installdeb(1)

set -e

# summary of how this script can be called:
#        * <postinst> `configure' <most-recently-configured-version>
#        * <old-postinst> `abort-upgrade' <new version>
#        * <conflictor's-postinst> `abort-remove' `in-favour' <package>
#          <new-version>
#        * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
#          <failed-install-package> <version> `removing'
#          <conflicting-package> <version>
# for details, see /usr/share/doc/packaging-manual/
#
# quoting from the policy:
#     Any necessary prompting should almost always be confined to the
#     post-installation script, and should be protected with a conditional
#     so that unnecessary prompting doesn't happen if a package's
#     installation fails and the `postinst' is called with `abort-upgrade',
#     `abort-remove' or `abort-deconfigure'.


. /usr/share/debconf/confmodule 

case "$1" in
    configure)
    # DEBIAN_HAS_FRONTEND added of bug #183960
	# DEBIAN_HAS_FRONTEND= update-inetd --add "8990\tstream\ttcp\tnowait.400\troot\t/usr/sbin/clc-build-daemon\tclc-build-daemon"
	DEBIAN_HAS_FRONTEND= update-inetd --add "8990\tstream\ttcp\tnowait.400\troot\t/usr/sbin/clc-build-daemon\tclc-build-daemon"

	# cleanup fasl files:
	find  /usr/share/common-lisp/source/defsystem /usr/share/common-lisp/source/asdf /usr/share/common-lisp/source/common-lisp-controller -type f -not -name "*.lisp" -print0 | xargs --null rm --force
	
	db_get common-lisp-controller/long-site-name
	long=$(printf "%s" "$RET" | sed -e 's/[\"]/\\&/g')
	db_get common-lisp-controller/short-site-name
	short=$(printf "%s" "$RET" | sed -e 's/[\"]/\\&/g')
	umask 0022
	cat > /etc/lisp-config.lisp <<EOF
(in-package :common-lisp-user)
;;; Please don't change this file. Automaticly generated by common-lisp-controller package.
;;; Run dpkg-reconfigure common-lisp-controller as root to change the settings

#+(or cmu scl)
(setf system:*short-site-name* "${short}" 
      system:*long-site-name* "${long}")
#+sbcl
(setf sb-sys:*short-site-name* "${short}" 
      sb-sys:*long-site-name* "${long}")
EOF
	db_get common-lisp-controller/auto-build
	if [ "$RET" = "true" ]; then
	    echo "yes" > /etc/common-lisp/autobuild
	else
	    echo "no" > /etc/common-lisp/autobuild 
	fi
	# should we queue only?
	db_get common-lisp-controller/queue-only
	if [ "$RET" = "true" ] ; then
	    touch /etc/common-lisp/queue-only
	else
	    rm -f /etc/common-lisp/queue-only  || true
	fi
    # in any case we rebuild with defsystem loaded...
	for compiler in /usr/lib/common-lisp/bin/*.sh ; do
	    if [ -f "$compiler" -a -r "$compiler" ] ; then
		i=${compiler##*/}
		i=${i%.sh}
		if [ -x "$compiler" ] ; then
		    echo Reinstalling for $i
		    echo Recompiling Common Lisp Controller for $i
		    bash "$compiler" install-clc || true
		    echo
		    echo Done rebuilding
		fi 
	    fi
	done 
	;;
    
    abort-upgrade|abort-remove|abort-deconfigure)
        # DEBIAN_HAS_FRONTEND= update-inetd --remove "8990@localhost\tstream\ttcp\tnowait\troot\t/usr/sbin/clc-build-daemon"
        update-inetd --remove "8990@localhost\tstream\ttcp\tnowait\troot\t/usr/sbin/clc-build-daemon"
	for compiler in /usr/lib/common-lisp/bin/*.sh ; do
	    if [ -f "$compiler" -a -r "$compiler" ] ; then
	     i=${compiler##*/}
	     i=${i%.sh}
	     if [ -x "$compiler" ] ; then
	        echo Deinstalling for ${i##*/}
	        echo Removing Common Lisp Controller for $i
	        bash "$compiler" remove-clc || true
	        echo
	        echo Done rebuilding
	    fi 
	   fi
	 done
    ;;

    *)
        echo "postinst called with unknown argument \`$1'" >&2
        exit 0
    ;;
esac

# dh_installdeb will replace this with shell code automatically
# generated by other debhelper scripts.

#DEBHELPER#

exit 0


