34 lines
1.1 KiB
Bash
Executable File
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}"
|