Ctrl K
ComunidadGuías…

scripts/install-butler-gateway-service.sh

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
#!/usr/bin/env bash
# Install Butler gateway as a systemd --user service.
set -euo pipefail

ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
# shellcheck source=scripts/lib/butler-gateway-preflight.sh
source "$ROOT/scripts/lib/butler-gateway-preflight.sh"
# shellcheck source=scripts/lib/butler-systemd-install.sh
source "$ROOT/scripts/lib/butler-systemd-install.sh"

PYTHON="$(butler_resolve_python3)"
UNIT_DIR="${XDG_CONFIG_HOME:-$HOME/.config}/systemd/user"
TEMPLATE="$ROOT/scripts/systemd/butler-gateway.service"
DEST="$UNIT_DIR/butler-gateway.service"

NO_RESTART=0
CHECK_ONLY=0

while [[ $# -gt 0 ]]; do
  case "$1" in
    --no-restart) NO_RESTART=1 ;;
    --check-only) CHECK_ONLY=1 ;;
    -h|--help)
      echo "Usage: $(basename "$0") [--check-only] [--no-restart]"
      exit 0
      ;;
    *)
      echo "Unknown option: $1" >&2
      exit 1
      ;;
  esac
  shift
done

ROOT="$ROOT" butler_gateway_preflight || {
  if [[ "$CHECK_ONLY" -eq 1 ]]; then
    exit 1
  fi
  echo "Preflight failed; fix errors above before installing." >&2
  exit 1
}

if [[ "$CHECK_ONLY" -eq 1 ]]; then
  exit 0
fi

# Avoid Hermes stealing the same Bot session.
if systemctl --user cat hermes-gateway.service >/dev/null 2>&1; then
  systemctl --user stop hermes-gateway.service 2>/dev/null || true
  systemctl --user disable hermes-gateway.service 2>/dev/null || true
  echo "Disabled hermes-gateway.service (Butler-only WeChat)."
fi

mkdir -p "$UNIT_DIR" "$ROOT/logs"
butler_render_systemd_unit "$TEMPLATE" "$DEST" "$ROOT" "$PYTHON"
systemctl --user daemon-reload
systemctl --user enable butler-gateway.service

if [[ "$NO_RESTART" -eq 0 ]]; then
  systemctl --user restart butler-gateway.service
else
  echo "Unit installed; skipped restart (--no-restart)."
fi

systemctl --user --no-pager status butler-gateway.service | head -15
echo ""
echo "Installed: $DEST"
echo "Ops: bash scripts/butler-gateway-ops.sh status|restart|logs|preflight"
echo "Docs: docs/guides/wechat-gateway-ops.md"