#!/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 _ups >/dev/null 2>/dev/null
	then
		echo "===>  Using existing account '_ups'"
	else
		echo "===>  Creating user '_ups'"
		useradd -g dialer \
			-c "UPS User" \
			-d /var/empty \
			-s /sbin/nologin \
			-u 529 _ups
	fi
}

do_post() {
	DEST_PFX=/etc/nut
	SOURCE_PFX=/usr/local/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 "/var/db/nut" ]; then
		install -d -m 0700 -o _ups /var/db/nut
	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
