#!/usr/bin/env bash # ssr-install — local install: symlink CLI, seed config, optionally schedule. set -euo pipefail SSR_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" # shellcheck source=../lib/common.sh source "$SSR_ROOT/lib/common.sh" ssr::require_macos PREFIX="${SSR_PREFIX:-$HOME/.local/bin}" CONFIG_DIR="${SSR_CONFIG_DIR:-$HOME/.config/ssr}" CONFIG_FILE="$CONFIG_DIR/ssr.conf" ssr::log "Installing ssr" ssr::log " prefix: $PREFIX" ssr::log " config: $CONFIG_FILE" ssr::ensure_dir "$PREFIX" ssr::ensure_dir "$CONFIG_DIR" # Symlink the main CLI so `ssr` works from anywhere. ln -sfn "$SSR_ROOT/bin/ssr" "$PREFIX/ssr" ssr::ok "Linked $PREFIX/ssr → $SSR_ROOT/bin/ssr" # Seed config from the example (do not overwrite an existing user config). if [[ ! -f "$CONFIG_FILE" ]]; then cp "$SSR_ROOT/config/ssr.conf.example" "$CONFIG_FILE" chmod 600 "$CONFIG_FILE" ssr::ok "Seeded $CONFIG_FILE (chmod 600)" else ssr::log "Config already exists, leaving untouched: $CONFIG_FILE" fi # Path hint if PREFIX is not on PATH. case ":$PATH:" in *":$PREFIX:"*) ;; *) ssr::warn "$PREFIX is not on your PATH — add it to your shell rc:" echo " export PATH=\"$PREFIX:\$PATH\"" ;; esac # Offer to enable the scheduled sync. if ssr::confirm "Enable daily scheduled sync (launchd)?" 30; then "$SSR_ROOT/bin/ssr-schedule" on fi # Offer to install shell completions for the detected shell. if ssr::confirm "Install shell completions for $(basename "${SHELL:-unknown}")?" 30; then "$SSR_ROOT/bin/ssr-completions" install fi ssr::ok "Install complete. Run: ssr status"