#!/bin/sh -e

installif() {

    # Install module if a corresponding config file is found (based on
    # conf.files/redhat/scripts/setmodules.sh)

    if [ -f $1 ]; then
        /bin/linuxconf --setmod $2 && echo -n "$2 "
    fi
}


case "$1" in
    install-askrunlevel)
        if [ ! -f /etc/init.d/linuxconf ]; then
            echo -n "Activating Linuxconf/askrunlevel at boot time... "
            cp /usr/lib/linuxconf/init.d/linuxconf-askrunlevel /etc/init.d/linuxconf-askrunlevel
            update-rc.d linuxconf-askrunlevel start 99 S . >/dev/null
            echo "done."
        fi
        ;;

    remove-askrunlevel)
        if [ -f /etc/init.d/linuxconf ]; then
            echo -n "Deactivating Linuxconf/askrunlevel at boot time... "
            rm -f /etc/init.d/linuxconf-askrunlevel
            update-rc.d -f linuxconf-askrunlevel remove >/dev/null
            echo "done."
        fi
        ;;

    install-boot)
        if [ ! -f /etc/init.d/rc.sysvinit ]; then
            dpkg-divert --package linuxconf --add --rename \
                --divert /etc/init.d/rc.sysvinit /etc/init.d/rc
            cp /usr/lib/linuxconf/init.d/rc /etc/init.d/rc
        fi
        ;;

    remove-boot)
        if [ -f /etc/init.d/rc.sysvinit ]; then
            dpkg-divert --package linuxconf --remove \
                --divert /etc/init.d/rc.sysvinit /etc/init.d/rc
            mv -f /etc/init.d/rc.sysvinit /etc/init.d/rc
        fi
        ;;

    update-modules)
        echo -n "Enabling Linuxconf modules: "

	installif /etc/conf.linuxconf accountbatch	# use always
	installif /etc/amanda amandaconf
	installif /etc/apt/sources.list aptconf
        installif /etc/apache/httpd.conf apache
        installif /etc/dhcpd.conf dhcpd
	# dialout does not work on Debian
	#installif /etc/conf.linuxconf diskconf		# use always
	/bin/linuxconf --unsetmod diskconf
	# drbdconf is not used in default configuration
        installif /etc/bind/named.conf dnsconf
	installif /usr/bin/fetchmail fetchmailconf
        installif /etc/init.d/networking firewall
	installif /etc/conf.linuxconf fsbrowser		# use always
	installif /sbin/grub grubconf
	installif /etc/conf.linuxconf gurus		# use always
	installif /etc/ha.d/ha.cf heartbeatconf
	installif /etc/inetd.conf inetdconf
	installif /etc/xinetd.conf inetdconf
        installif /etc/inittab inittab
	installif /etc/ircd/ircd.conf ircdconf
	installif /etc/isapnp.conf isapnpconf
	installif /etc/isapnp.gone isapnpconf
	installif /etc/conf.linuxconf kbdconf		# use always
	installif /etc/conf.linuxconf kernelconf	# use always
	installif /etc/lilo.conf liloconf
        installif /etc/sendmail.cf mailconf
	# managerpm is not useful on Debian
	# marsconf is not used (no Debian package)
	installif /etc/mgetty/login.config mgettyconf
        installif /etc/conf.linuxconf modemconf		# use always
        installif /etc/motd motd
	installif /etc/conf.linuxconf mouseconf		# use always
        installif /etc/mrtg.cfg mrtg
        installif /etc/network/interfaces netadm
	installif /etc/exports nfsconf
	installif /etc/yp.conf nisconf
	installif /etc/ssh/sshd_config opensshd
	installif /etc/security pamconf
	installif /etc/postfix/main.cf postfixconf
	# pppdialin does not work on Debian
	installif /etc/printcap printer
	installif /etc/portslave/pslave.conf pslaveconf
	installif /usr/bin/python pythonmod
	installif /etc/raddb/users radiusconf
        installif /etc/conf.linuxconf rarp		# use always
	# redhatppp does not work on Debian
	installif /etc/conf.linuxconf report		# use always
	installif /etc/samba/smb.conf samba
	installif /etc/conf.linuxconf shellmod		# use always
        installif /etc/squid.conf squid
        installif /etc/conf.linuxconf status            # use always
	installif /etc/syslog.conf syslogconf
	installif /etc/conf.linuxconf tcptool		# use always
        # treemenu is not used in default configuration
	installif /etc/conf.linuxconf updatemon		# use always
        installif /etc/conf.linuxconf usermenu          # use always
	installif /etc/conf.linuxconf usersbygroup	# use always
        installif /etc/uucp/config uucp
	installif /etc/conf.linuxconf vregistry		# use always
	installif /etc/wine.conf wineconf
        installif /etc/ftpaccess wuftpd
	# xterminals is not used in default configuration

        echo "done."
        ;;

    *)
        echo >&2 "Usage: `basename $0` COMMAND"
        echo >&2 ""
        echo >&2 "Where COMMAND is one of:"
        echo >&2 "install-askrunlevel   Install the askrunlevel tool at boot time"
        echo >&2 "remove-askrunlevel    Remove the askrunlevel tool"
        echo >&2 "install-boot          Install Linuxconf's /etc/init.d/rc script"
        echo >&2 "remove-boot           Remove Linuxconf's rc script and restore the old one"
        echo >&2 "update-modules        Enable all modules for installed packages"
        exit 1
        ;;
esac
