#!/bin/sh
#
# $OpenBSD: INSTALL,v 1.6 2004/02/09 06:48:48 marcm Exp $

P_NAME=nut

DIRS='
.
'

FILES='
ups.conf
upssched.conf
'

PRIVATE_FILES='
upsmon.conf
upsd.conf
upsd.users
'

set -e
PREFIX=${PKG_PREFIX:-/usr/local}
PATH=/bin:/usr/bin:/sbin:/usr/sbin

do_create_user() {
	if id -u ${NUT_USER} >/dev/null 2>/dev/null
	then
		echo "===>  Using existing account '${NUT_USER}'"
	else
		echo "===>  Creating user '${NUT_USER}'"
		useradd -g dialer \
			-c "UPS User" \
			-d /var/empty \
			-s /sbin/nologin \
			-u ${NUT_ID} ${NUT_USER}
	fi
}

do_post() {
	DEST_PFX=${CONFDIR}
	SOURCE_PFX=${PREFIX}/share/examples/${P_NAME}

	echo 
	echo "+--------------- ${P_NAME}"

	# install dirs if necessary
	for d in ${DIRS}; do
		if [ ! -d "${DEST_PFX}/$d" ]; then
			install -d ${DEST_PFX}/$d
		fi
	done
	if [ ! -d "${NUT_STATEDIR}" ]; then
		install -d -m 0700 -o ${NUT_USER} ${NUT_STATEDIR}
	fi


	# install or take note of existing config files
	for f in ${FILES}; do
		if [ -f "${DEST_PFX}/$f" ]; then
			OLD_CONFS="${OLD_CONFS} $f"
		else
			if ! install -m 644 ${SOURCE_PFX}/$f.sample ${DEST_PFX}/$f; then
				echo "| ERROR: The following file could not be installed, exiting: ${DEST_PFX}/$f"
				exit 1
			fi
			NEW_CONFS="${NEW_CONFS} $f"
		fi
	done

	# install or take note of existing config files (yes again)
	for f in ${PRIVATE_FILES}; do
		if [ -f "${DEST_PFX}/$f" ]; then
			OLD_CONFS="${OLD_CONFS} $f"
		else
			if ! install -m 600 ${SOURCE_PFX}/$f.sample ${DEST_PFX}/$f; then
				echo "| ERROR: The following file could not be installed, exiting: ${DEST_PFX}/$f"
				exit 1
			fi
			NEW_CONFS="${NEW_CONFS} $f"
		fi
	done

	# print status report
	if [ -n "${NEW_CONFS}" ]; then
		echo "| The following NEW configuration files have been installed:"
		echo "|"
		for f in ${NEW_CONFS}; do
			echo "| ${DEST_PFX}/$f"
		done 
	fi
	
	if [ -n "${OLD_CONFS}" ]; then
		if [ -n "${NEW_CONFS}" ]; then
			echo "|"
		fi
		echo "| The following OLD configuration files were found and have NOT been"
		echo "| overwritten:"
		echo "|"
		for f in ${OLD_CONFS}; do
			echo "| ${DEST_PFX}/$f"
		done
		echo "|"
		echo "| You should however manually compare them to their equivalents in"
		echo "|"
		echo "| ${SOURCE_PFX}"
		echo "|"
		echo "| and update your configuration as needed." 
	fi
	echo "+--------------- ${P_NAME}"
	echo 
}


# verify proper execution
#
if [ $# -ne 2 ]; then
	echo "usage: $0 distname { PRE-INSTALL | POST-INSTALL }" >&2
	exit 1
fi

# Verify/process the command
#
case $2 in
	PRE-INSTALL)
		do_create_user
		;;
	POST-INSTALL)
		do_post
		;;
	*)
		echo "usage: $0 distname { PRE-INSTALL | POST-INSTALL }" >&2
		exit 1
		;;
esac

exit 0
