Files
managed-portal/managed/people_flow_project/scripts/install_service.sh
2026-04-27 10:04:36 +08:00

34 lines
1.1 KiB
Bash
Executable File

#!/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}"