#!/bin/sh
set -e

#
# This script is executed in the pre-installation phase
#
#   On Debian,
#       $1=install : indicates an new install
#       $1=upgrade : indicates an upgrade
#
#   On RedHat,
#       $1=1       : indicates an new install
#       $1=2       : indicates an upgrade



# Sets the default values for kibana variables used in this script
KIBANA_USER="kibana"
KIBANA_GROUP="kibana"


case "$1" in

    # Debian ####################################################
    install|upgrade)

        # Create kibana group if not existing
        if ! getent group "$KIBANA_GROUP" > /dev/null 2>&1 ; then
            echo -n "Creating $KIBANA_GROUP group..."
            addgroup --quiet --system "$KIBANA_GROUP"
            echo " OK"
        fi

        # Create kibana user if not existing
        if ! id $KIBANA_USER > /dev/null 2>&1 ; then
            echo -n "Creating $KIBANA_USER user..."
            adduser --quiet \
                    --system \
                    --no-create-home \
                    --ingroup "$KIBANA_GROUP" \
                    --disabled-password \
                    --shell /bin/false \
                    "$KIBANA_USER"
            echo " OK"
        fi
    ;;
    abort-deconfigure|abort-upgrade|abort-remove)
    ;;

    # RedHat ####################################################
    1|2)

        # Create kibana group if not existing
        if ! getent group "$KIBANA_GROUP" > /dev/null 2>&1 ; then
            echo -n "Creating $KIBANA_GROUP group..."
            groupadd -r "$KIBANA_GROUP"
            echo " OK"
        fi

        # Create kibana user if not existing
        if ! id $KIBANA_USER > /dev/null 2>&1 ; then
            echo -n "Creating $KIBANA_USER user..."
            useradd --system \
                    -M \
                    --gid "$KIBANA_GROUP" \
                    --shell /sbin/nologin \
                    --comment "kibana user" \
                    "$KIBANA_USER"
            echo " OK"
        fi
    ;;

    *)
        echo "pre install script called with unknown argument \`$1'" >&2
        exit 1
    ;;
esac

exit 0
