Files
DbusSmsForward/deploy/debian/install.sh
T

36 lines
1.1 KiB
Bash

#!/usr/bin/env sh
set -eu
APP_NAME="dbussmsforward"
ROOT_DIR="${ROOT_DIR:-/}"
APP_DIR="${ROOT_DIR%/}/opt/dbussmsforward"
CONFIG_DIR="${ROOT_DIR%/}/etc/dbussmsforward"
SYSTEMD_UNIT="${ROOT_DIR%/}/etc/systemd/system/${APP_NAME}.service"
CONFIG_FILE="$CONFIG_DIR/appsettings.json"
ENV_REPORT="$CONFIG_DIR/install-env-check.json"
SKIP_SERVICE_ENABLE="${SKIP_SERVICE_ENABLE:-0}"
mkdir -p "$APP_DIR" "$CONFIG_DIR" "$(dirname "$SYSTEMD_UNIT")"
cp -R src wwwroot pyproject.toml README.md "$APP_DIR/"
if [ ! -f "$CONFIG_FILE" ]; then
cp deploy/common/appsettings.deploy.json "$CONFIG_FILE"
fi
cp deploy/debian/dbussmsforward.service "$SYSTEMD_UNIT"
if ! PYTHONPATH="$APP_DIR/src" python3 -m dbussmsforward.cli env-check --config "$CONFIG_FILE" --format json > "$ENV_REPORT"; then
echo "Environment check failed. Report saved to $ENV_REPORT" >&2
cat "$ENV_REPORT" >&2
exit 1
fi
if [ "$SKIP_SERVICE_ENABLE" != "1" ]; then
systemctl daemon-reload
systemctl enable "$APP_NAME"
fi
echo "Installed to $APP_DIR"
echo "Config: $CONFIG_FILE"
echo "Env check report: $ENV_REPORT"
echo "Start with: systemctl start $APP_NAME"
echo "Logs with: journalctl -u $APP_NAME -f"