diff options
Diffstat (limited to 'devel/p4web/pkg-install')
-rw-r--r-- | devel/p4web/pkg-install | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/devel/p4web/pkg-install b/devel/p4web/pkg-install new file mode 100644 index 000000000000..b1c9c5d72e22 --- /dev/null +++ b/devel/p4web/pkg-install @@ -0,0 +1,52 @@ +#! /bin/sh +# +# $FreeBSD$ + +PATH=/bin:/usr/sbin + +PERFORCE_USER=${PERFORCE_USER:-p4admin} +PERFORCE_UID=${PERFORCE_UID:-94} +PERFORCE_GROUP=${PERFORCE_GROUP:-p4admin} +PERFORCE_GID=${PERFORCE_GID:-94} +PERFORCE_HOME=${PERFORCE_HOME:-$PKG_PREFIX/perforce} +PERFORCE_LOGDIR=${PERFORCE_LOGDIR:-$PERFORCE_HOME/log} +PERFORCE_ROOT=${PERFORCE_ROOT:-$PERFORCE_HOME/root} + +case $2 in +PRE-INSTALL) + USER=${PERFORCE_USER} + GROUP=${PERFORCE_GROUP} + UID=${PERFORCE_UID} + GID=${PERFORCE_GID} + + if pw group show "${GROUP}" 2>/dev/null; then + echo "You already have a group \"${GROUP}\", so I will use it." + else + if pw groupadd ${GROUP} -g ${GID}; then + echo "Added group \"${GROUP}\"." + else + echo "Adding group \"${GROUP}\" failed..." + exit 1 + fi + fi + + if pw user show "${USER}" 2>/dev/null; then + echo "You already have a user \"${USER}\", so I will use it." + else + if pw useradd ${USER} -u ${UID} -g ${GROUP} -h - \ + -d ${PERFORCE_HOME} -c "Perforce admin" -s /sbin/nologin + then + echo "Added user \"${USER}\"." + else + echo "Adding user \"${USER}\" failed..." + exit 1 + fi + fi + + if [ ! -d $PERFORCE_HOME ] ; then +echo hey + mkdir -p $PERFORCE_HOME $PERFORCE_LOGS $PERFORCE_ROOT + chown -R $USER:$GROUP $PERFORCE_HOME + fi + ;; +esac |