#!/bin/sh
#
# Checks if the requested user and group exist. If they don't, then
# an attempt is made to create both.
#
# $FreeBSD: ports/www/cocoon/files/pkg-install,v 1.1 2004/07/01 22:30:19 glewis Exp $
#
# Borrowed from the jakarta-tomcat port
#

set -e

RUNASUSER=%%RUNASUSER%%
RUNASUID=%%RUNASUID%%
GROUP=%%GROUP%%
GID=%%GID%%
APP_NAME=%%APP_NAME%%
PID_FILE=%%PID_FILE%%
LOGFILE=%%LOGFILE%%

if [ "$2" = "POST-INSTALL" ]; then
    # We're called after the 'make install' process
    # See if the group already exists
    if ! pw groupshow "${GROUP}" 2>/dev/null 1>&2; then

        # If not, try to create it
        if pw groupadd ${GROUP} -g ${GID}; then
            echo "Added group \"${GROUP}\"."
        else
            echo "Adding group \"${GROUP}\" failed..."
            exit 1
        fi
    fi

    # See if the user already exists
    if ! pw usershow "${RUNASUSER}" 2>/dev/null 1>&2; then

        # If not, try to create it
        if pw useradd ${RUNASUSER} -u ${RUNASUID} -g ${GROUP} -h - \
            -s "/sbin/nologin" -d "/nonexistent" \
            -c "World Wide Web Owner"; \
        then
            echo "Added user \"${RUNASUSER}\"."
        else
            echo "Adding user \"${RUNASUSER}\" failed..."
            exit 1
        fi
    fi

    chown -R ${RUNASUSER}:${GROUP} $PKG_PREFIX/${APP_NAME}
    touch ${LOGFILE} ${PID_FILE}
    chown ${RUNASUSER}:${GROUP} ${LOGFILE} ${PID_FILE}
fi

exit 0
