68 lines
2 KiB
Bash
68 lines
2 KiB
Bash
#!/bin/bash
|
|
|
|
# summary of how this script can be called:
|
|
# * <new-preinst> `install'
|
|
# * <new-preinst> `install' <old-version>
|
|
# * <new-preinst> `upgrade' <old-version>
|
|
# * <old-preinst> `abort-upgrade' <new-version>
|
|
# for details, see https://www.debian.org/doc/debian-policy/ or
|
|
# the debian-policy package
|
|
|
|
set -e # fail on any error
|
|
|
|
PROJECT=armaconsole
|
|
|
|
# USERS CONFIG
|
|
PROJECT_USER="${PROJECT}"
|
|
PROJECT_GROUP="www-data"
|
|
SUDOERS_FILE_PATH="/etc/sudoers.d/${PROJECT}"
|
|
|
|
# SYSTEMCTL CONFIG
|
|
SYSCTL_AMC_SERVICES="amcgunicorn amccelery amccelerybeat amccorrelator amclicense amcchecker amcvector"
|
|
|
|
# AMC DIRS
|
|
AMC_HOME="/usr/local/${PROJECT}"
|
|
|
|
# ======[ Trap Errors ]======#
|
|
set -E # let shell functions inherit ERR trap
|
|
trap err_handler 1 2 3 15 ERR # Trap non-normal exit signals: 1/HUP, 2/INT, 3/QUIT, 15/TERM, ERR
|
|
# shellcheck disable=SC2128
|
|
function err_handler() {
|
|
local exit_status=${1:-$?}
|
|
logger -s -p "syslog.err" -t "${PROJECT}.deb" \
|
|
"${PROJECT}.deb script '$0' error code $exit_status (line $BASH_LINENO: '$BASH_COMMAND')"
|
|
exit "$exit_status"
|
|
}
|
|
|
|
DEBUG_INSTALL="${DEBUG_INSTALL:-0}"
|
|
[ "$DEBUG_INSTALL" == "1" ] && set -x
|
|
[ "$DEBUG_INSTALL" == "1" ] && echo "Calling preinst $*"
|
|
|
|
set -u # treat unset variables as errors
|
|
case "$1" in
|
|
upgrade)
|
|
# shellcheck disable=SC2086
|
|
systemctl stop $SYSCTL_AMC_SERVICES || true
|
|
# shellcheck disable=SC2086
|
|
systemctl disable $SYSCTL_AMC_SERVICES || true
|
|
;;
|
|
install)
|
|
# User
|
|
id -g ${PROJECT_GROUP} &>/dev/null ||
|
|
groupadd ${PROJECT_GROUP}
|
|
id -u ${PROJECT_USER} &>/dev/null ||
|
|
adduser --system --home "${AMC_HOME}" --no-create-home \
|
|
--shell /bin/bash --ingroup "${PROJECT_GROUP}" --gecos "ARMA management console user" \
|
|
"${PROJECT_USER}" &>/dev/null
|
|
echo "${PROJECT_USER} ALL=(ALL) NOPASSWD:ALL" >"${SUDOERS_FILE_PATH}"
|
|
|
|
# Hosts
|
|
echo "127.0.0.1 license-client elasticsearch vector armaconsole" >> /etc/hosts
|
|
;;
|
|
abort-upgrade) ;;
|
|
*)
|
|
echo "preinst called with unknown argument \`$1'" >&2
|
|
exit 1
|
|
;;
|
|
esac
|
|
exit 0
|