${packaging.scripts.header}

#
# 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 elasticsearch variables used in this script
ES_USER="${packaging.elasticsearch.user}"
ES_GROUP="${packaging.elasticsearch.group}"

# Source the default env file
ES_ENV_FILE="${packaging.env.file}"
if [ -f "$ES_ENV_FILE" ]; then
    . "$ES_ENV_FILE"
fi

case "$1" in

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

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

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

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

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

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

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

${packaging.scripts.footer}
