#!/bin/sh -ex


pre_install()
{
	# create group if needed
	GRPLIST="
	group_solomon:1800
	unified_agent:1515
	"
	DEFAULT_GID=1800

	# create users if needed
	USERLIST="
	unified_agent:1515:1515
	user_gateway:1800
	user_fetcher:1801
	user_coremon:1802
	user_stockpile:1803
	user_monitoring_gateway:1804
	user_alerting:1805
	user_agent:1806
	user_ingestor:1807
	user_dumper:1808
	user_memstore:1809
	user_dataproxy:1810
	user_yasmgateway:1811
	user_name-resolver:1812
	user_slicer:1813
	user_backup:1814
	user_project-manager:1816
	user_mgstorage:1900
	user_mgweb:1901
	"
	DEFAULT_UID=1800
	HD="/nonexistent"

	for G in $GRPLIST; do
		GRP=$(echo $G | awk -vFS=: '{print $1}')
		GroupID=$(echo $G | awk -vFS=: '{print $2}')

		GroupID=${GroupID:-$DEFAULT_GID}
		if ! getent group $GRP >/dev/null; then
			while getent group $GroupID >/dev/null; do
				GroupID=$(($GroupID + 1))
			done
			groupadd -g $GroupID $GRP
		else
			echo "$GRP group already exists"
		fi
	done

	for U in $USERLIST; do
		USER=$(echo $U | awk -vFS=: '{print $1}')
		UserID=$(echo $U | awk -vFS=: '{print $2}')
		GID=$(echo $U | awk -vFS=: '{print $3}')

		UserID=${UserID:-$DEFAULT_UID}
		GID=${GID:-$DEFAULT_GID}
		if ! getent passwd $USER >/dev/null; then
			while getent passwd $UserID >/dev/null; do
				UserID=$(($UserID + 1))
			done
			useradd --uid $UserID --gid $GID --home $HD --shell /bin/false $USER
		else
			echo "$USER user already exists"
		fi
	done
}


case "$1" in
	install|upgrade)
		pre_install || true
		;;

	abort-upgrade)
		;;

	*)
		echo "preinst was called with unknown argument '$1'" >&2
		exit 1
		;;
esac
