netgescon-day0/scripts/ops/install-smdr-systemd.sh

31 lines
908 B
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
BASE_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
TEMPLATE="$BASE_DIR/scripts/systemd/netgescon-smdr-listener.service.template"
SERVICE_NAME="${SERVICE_NAME:-netgescon-smdr-listener.service}"
RUN_AS="${RUN_AS:-www-data}"
RUN_GROUP="${RUN_GROUP:-$RUN_AS}"
INSTALL_DIR="${INSTALL_DIR:-/etc/systemd/system}"
TARGET_FILE="$INSTALL_DIR/$SERVICE_NAME"
if [[ ! -f "$TEMPLATE" ]]; then
echo "Template non trovato: $TEMPLATE" >&2
exit 1
fi
TMP_FILE="$(mktemp)"
trap 'rm -f "$TMP_FILE"' EXIT
sed \
-e "s|@BASE_DIR@|$BASE_DIR|g" \
-e "s|@RUN_AS@|$RUN_AS|g" \
-e "s|@RUN_GROUP@|$RUN_GROUP|g" \
"$TEMPLATE" > "$TMP_FILE"
echo "Installo $SERVICE_NAME in $TARGET_FILE"
sudo install -o root -g root -m 0644 "$TMP_FILE" "$TARGET_FILE"
sudo systemctl daemon-reload
sudo systemctl enable --now "$SERVICE_NAME"
sudo systemctl status "$SERVICE_NAME" --no-pager