#!/usr/bin/env bash set -euo pipefail script_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" # shellcheck source=/dev/null source "${script_dir}/aqua-hosted-pulse-service-common.sh" apply=0 replace_existing=0 platform="$(aquaclaw_hp_detect_platform || true)" if [[ -z "${platform}" ]]; then echo "unsupported platform: $(uname -s). This installer supports macOS launchd and Linux systemd user services." >&2 exit 1 fi label="$(aquaclaw_hp_default_label)" workspace_root="$(aquaclaw_hp_default_workspace_root)" service_path="$(aquaclaw_hp_default_service_path)" hosted_config="$(aquaclaw_hp_default_hosted_config)" pulse_state_file="$(aquaclaw_hp_default_pulse_state_file)" loop_state_file="$(aquaclaw_hp_default_loop_state_file)" min_seconds="$(aquaclaw_hp_default_min_seconds)" jitter_seconds="$(aquaclaw_hp_default_jitter_seconds)" failure_min_seconds="$(aquaclaw_hp_default_failure_min_seconds)" failure_jitter_seconds="$(aquaclaw_hp_default_failure_jitter_seconds)" timeout_ms="$(aquaclaw_hp_default_timeout_ms)" timezone="$(aquaclaw_hp_default_timezone)" author_agent="$(aquaclaw_hp_default_author_agent)" quiet_hours="$(aquaclaw_hp_default_quiet_hours)" feed_limit="$(aquaclaw_hp_default_feed_limit)" social_cooldown_minutes="$(aquaclaw_hp_default_social_cooldown_minutes)" dm_cooldown_minutes="$(aquaclaw_hp_default_dm_cooldown_minutes)" dm_target_cooldown_minutes="$(aquaclaw_hp_default_dm_target_cooldown_minutes)" stdout_log="$(aquaclaw_hp_default_stdout_log)" stderr_log="$(aquaclaw_hp_default_stderr_log)" openclaw_bin="${OPENCLAW_BIN:-}" provision_community=1 replace_community_agent=0 community_model="${AQUACLAW_HOSTED_PULSE_COMMUNITY_MODEL:-}" while [[ $# -gt 0 ]]; do case "$1" in --apply) apply=1 shift ;; --replace) replace_existing=1 shift ;; --label) label="$2" shift 2 ;; --workspace-root) workspace_root="$2" shift 2 ;; --service-path) service_path="$2" shift 2 ;; --hosted-config) hosted_config="$2" shift 2 ;; --state-file) pulse_state_file="$2" shift 2 ;; --loop-state-file) loop_state_file="$2" shift 2 ;; --min-seconds) min_seconds="$2" shift 2 ;; --jitter-seconds) jitter_seconds="$2" shift 2 ;; --failure-min-seconds) failure_min_seconds="$2" shift 2 ;; --failure-jitter-seconds) failure_jitter_seconds="$2" shift 2 ;; --timeout-ms) timeout_ms="$2" shift 2 ;; --timezone) timezone="$2" shift 2 ;; --openclaw-bin) openclaw_bin="$2" shift 2 ;; --skip-community-provision) provision_community=0 shift ;; --replace-community-agent) replace_community_agent=1 shift ;; --community-model) community_model="$2" shift 2 ;; --author-agent) author_agent="$2" shift 2 ;; --quiet-hours) if [[ "$2" == "none" ]]; then quiet_hours="" else quiet_hours="$2" fi shift 2 ;; --feed-limit) feed_limit="$2" shift 2 ;; --social-pulse-cooldown-minutes) social_cooldown_minutes="$2" shift 2 ;; --social-pulse-dm-cooldown-minutes) dm_cooldown_minutes="$2" shift 2 ;; --social-pulse-dm-target-cooldown-minutes) dm_target_cooldown_minutes="$2" shift 2 ;; --stdout-log) stdout_log="$2" shift 2 ;; --stderr-log) stderr_log="$2" shift 2 ;; -h|--help) cat <<'EOF' Usage: install-aquaclaw-hosted-pulse-service.sh [options] Options: --apply Actually write and start the service --replace Overwrite an existing service file --label