#!/usr/bin/env bash # Plexum-gemini-provider installer. # # Builds + installs the plugin under ~/.plexum/plugins/. # Operator config (~/.plexum/plugins/plexum-gemini-provider/config.json) # is optional — defaults work if `gemini` is on PATH and authenticated. set -euo pipefail REPO="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")/.." && pwd)" PROFILE_DIR="${HOME}/.plexum" while [[ $# -gt 0 ]]; do case "$1" in --profile) PROFILE_DIR="$2"; shift 2 ;; -h|--help) sed -n '2,/^set -euo/p' "$0" | sed -n '/^#/p' | sed 's/^# \{0,1\}//'; exit 0 ;; *) echo "unknown flag: $1" >&2; exit 2 ;; esac done log() { printf '\033[1;34m[gemini-install]\033[0m %s\n' "$*"; } command -v go >/dev/null || { echo "go not found on PATH" >&2; exit 1; } command -v gemini >/dev/null || log "WARN: gemini CLI not on PATH yet (operator must install before first turn)" PLUGIN_DIR="${PROFILE_DIR}/plugins/plexum-gemini-provider" mkdir -p "${PLUGIN_DIR}" cd "${REPO}" VERSION="$(git describe --tags --always 2>/dev/null || echo dev)" LDFLAGS="-X main.Version=${VERSION}" log "building plexum-gemini-provider-plugin (v=${VERSION})" CGO_ENABLED=0 go build -ldflags="${LDFLAGS}" \ -o "${PLUGIN_DIR}/plexum-gemini-provider-plugin" \ ./cmd/plexum-gemini-provider-plugin cat > "${PLUGIN_DIR}/manifest.json" <<'EOF' { "name": "plexum-gemini-provider", "version": "0.1.0", "activation": "lazy", "executable": "plexum-gemini-provider-plugin", "contracts": { "provider": { "models": ["gemini", "gemini-pro", "gemini-flash", "gemini-flash-lite"] } } } EOF cat < 3. systemctl --user restart plexum EOF