#!/usr/bin/env bash set -euo pipefail PROJECT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" TEMPLATE_PATH="${PROJECT_DIR}/deploy/people-flow.service.tpl" CONFIG_PATH="${CONFIG_PATH:-${PROJECT_DIR}/config/local.yaml}" SERVICE_NAME="${SERVICE_NAME:-people-flow.service}" OUTPUT_PATH="${PROJECT_DIR}/deploy/${SERVICE_NAME}" RUN_USER="${RUN_USER:-${SUDO_USER:-$(id -un)}}" RUN_GROUP="${RUN_GROUP:-$(id -gn "${RUN_USER}")}" if [[ ! -f "${TEMPLATE_PATH}" ]]; then echo "Missing service template: ${TEMPLATE_PATH}" >&2 exit 1 fi if [[ ! -f "${CONFIG_PATH}" ]]; then echo "Missing config file: ${CONFIG_PATH}" >&2 exit 1 fi sed \ -e "s|__PROJECT_DIR__|${PROJECT_DIR}|g" \ -e "s|__CONFIG_PATH__|${CONFIG_PATH}|g" \ -e "s|__RUN_USER__|${RUN_USER}|g" \ -e "s|__RUN_GROUP__|${RUN_GROUP}|g" \ "${TEMPLATE_PATH}" > "${OUTPUT_PATH}" sudo cp "${OUTPUT_PATH}" "/etc/systemd/system/${SERVICE_NAME}" sudo systemctl daemon-reload echo "Service installed to /etc/systemd/system/${SERVICE_NAME}" echo "Enable and start it with: sudo systemctl enable --now ${SERVICE_NAME}"