#!/bin/sh
# $OpenBSD: INSTALL,v 1.6 2004/06/24 03:09:31 brad Exp $
#
# Pre/post-installation setup of Bitlbee

PATH=/bin:/usr/bin:/sbin:/usr/sbin
PREFIX=${PKG_PREFIX:-/usr/local}
DB_DIR=${DB_DIR}
CONFIG_DIR=${ETCDIR}
SAMPLE_CONFIG_DIR=${EXAMPLEDIR}
BITLBEEUSER=${BITLBEEUSER}
BITLBEEGROUP=${BITLBEEGROUP}
ID=${ID}

do_notice_existingdir() {
    cat << EOF

+---------------
| You appear to already have a Bitlbee-settings dir in $DB_DIR
|
| This directory has been preserved. If you want to start from
| from the default, you have to perform this step as root:
|
|      # rm -rf $DB_DIR/*
|
+---------------

EOF
}

do_usergroup_install() {
    # Create bitlbee user and group
    if groupinfo -e $BITLBEEGROUP; then
	echo "===> Using $BITLBEEGROUP group for bitlbee"
    else
	echo "===> Creating $BITLBEEGROUP group for bitlbee"
	groupadd -g $ID $BITLBEEGROUP
    fi

    if userinfo -e $BITLBEEUSER; then
	echo "===> Using $BITLBEEUSER user for bitlbee"
    else
	echo "===> Creating $BITLBEEUSER user for bitlbee"
	useradd -g $BITLBEEGROUP \
		-d /nonexistent \
		-L daemon \
		-c 'Bitlbee Account' \
		-s /sbin/nologin \
		-u $ID \
		$BITLBEEUSER \
		    2>&1| grep nonexistant >&2
    fi
}

do_database_install() {
    install -d -m 0770 -o $BITLBEEUSER -g $BITLBEEGROUP $DB_DIR
}

do_manual_notice() {
    cat << EOF
+---------------
| To enable bitlbee you have to add a line like:
|
|    127.0.0.1:6667    stream  tcp     nowait $BITLBEEUSER /usr/local/libexec/bitlbee bitlbee
|
| to your /etc/inetd.conf and restart inetd with
|
|    # kill -HUP \`cat /var/run/inetd.pid\`
|
+---------------

EOF
}

do_config_install() {
    install -d -o root -g wheel -m 755 $CONFIG_DIR
    install -o root -g wheel -m 644 $SAMPLE_CONFIG_DIR/bitlbee.conf $CONFIG_DIR
    install -o root -g wheel -m 644 $SAMPLE_CONFIG_DIR/motd.txt $CONFIG_DIR
    cat << EOF

+---------------
| The $1 configuration file, $CONFIG_DIR/bitlbee.conf,
| has been installed.  Please view this file and change
| the configuration to meet your needs.
+---------------

EOF
}

do_config_notice() {
    cat << EOF

+---------------
| The existing $1 configuration file, $CONFIG_DIR/bitlbee.conf,
| has NOT been changed.  You may want to compare it to the
| current sample file, $SAMPLE_CONFIG_DIR/bitlbee.conf,
| and update your configuration as needed.
+---------------

EOF
}

# Verify/process the command
#
case $2 in
    PRE-INSTALL)
	if [ -d $DB_DIR ]; then
	    do_notice_existingdir
	fi
	do_usergroup_install
	;;
    POST-INSTALL)
	if [ ! -d $DB_DIR ]; then
	    do_database_install
	fi
	do_manual_notice
	if [ ! -f $CONFIG_DIR/bitlbee.conf ]; then
	    do_config_install $1
	else
	    do_config_notice $1
	fi
	;;
    *)
	echo "usage: $0 distname { PRE-INSTALL | POST-INSTALL }" >&2
	exit 1
	;;
esac

exit 0
