# ────────────────────────────────────────────── # cursor-api-proxy — 設定與建置 # 編輯下方變數,然後執行 make env 產生 .env 檔 # ────────────────────────────────────────────── # ── 伺服器設定 ───────────────────────────────── HOST ?= 127.0.0.1 PORT ?= 8765 API_KEY ?= TIMEOUT_MS ?= 300000 MULTI_PORT ?= false VERBOSE ?= false # ── Agent / 模型設定 ────────────────────────── AGENT_BIN ?= agent AGENT_NODE ?= AGENT_SCRIPT ?= DEFAULT_MODEL ?= auto STRICT_MODEL ?= true MAX_MODE ?= false FORCE ?= false APPROVE_MCPS ?= false # ── 工作區與帳號 ────────────────────────────── WORKSPACE ?= CHAT_ONLY_WORKSPACE ?= true CONFIG_DIRS ?= # ── TLS / HTTPS ─────────────────────────────── TLS_CERT ?= TLS_KEY ?= # ── 記錄 ────────────────────────────────────── SESSIONS_LOG ?= # ────────────────────────────────────────────── ENV_FILE ?= .env .PHONY: env run build clean help ## 產生 .env 檔(預設輸出至 .env,可用 ENV_FILE=xxx 覆寫) env: @printf '# 由 make env 自動產生,請勿手動編輯\n' > $(ENV_FILE) @printf 'CURSOR_BRIDGE_HOST=%s\n' "$(HOST)" >> $(ENV_FILE) @printf 'CURSOR_BRIDGE_PORT=%s\n' "$(PORT)" >> $(ENV_FILE) @printf 'CURSOR_BRIDGE_API_KEY=%s\n' "$(API_KEY)" >> $(ENV_FILE) @printf 'CURSOR_BRIDGE_TIMEOUT_MS=%s\n' "$(TIMEOUT_MS)" >> $(ENV_FILE) @printf 'CURSOR_BRIDGE_MULTI_PORT=%s\n' "$(MULTI_PORT)" >> $(ENV_FILE) @printf 'CURSOR_BRIDGE_VERBOSE=%s\n' "$(VERBOSE)" >> $(ENV_FILE) @printf 'CURSOR_AGENT_BIN=%s\n' "$(AGENT_BIN)" >> $(ENV_FILE) @printf 'CURSOR_AGENT_NODE=%s\n' "$(AGENT_NODE)" >> $(ENV_FILE) @printf 'CURSOR_AGENT_SCRIPT=%s\n' "$(AGENT_SCRIPT)" >> $(ENV_FILE) @printf 'CURSOR_BRIDGE_DEFAULT_MODEL=%s\n' "$(DEFAULT_MODEL)" >> $(ENV_FILE) @printf 'CURSOR_BRIDGE_STRICT_MODEL=%s\n' "$(STRICT_MODEL)" >> $(ENV_FILE) @printf 'CURSOR_BRIDGE_MAX_MODE=%s\n' "$(MAX_MODE)" >> $(ENV_FILE) @printf 'CURSOR_BRIDGE_FORCE=%s\n' "$(FORCE)" >> $(ENV_FILE) @printf 'CURSOR_BRIDGE_APPROVE_MCPS=%s\n' "$(APPROVE_MCPS)" >> $(ENV_FILE) @printf 'CURSOR_BRIDGE_WORKSPACE=%s\n' "$(WORKSPACE)" >> $(ENV_FILE) @printf 'CURSOR_BRIDGE_CHAT_ONLY_WORKSPACE=%s\n' "$(CHAT_ONLY_WORKSPACE)" >> $(ENV_FILE) @printf 'CURSOR_CONFIG_DIRS=%s\n' "$(CONFIG_DIRS)" >> $(ENV_FILE) @printf 'CURSOR_BRIDGE_TLS_CERT=%s\n' "$(TLS_CERT)" >> $(ENV_FILE) @printf 'CURSOR_BRIDGE_TLS_KEY=%s\n' "$(TLS_KEY)" >> $(ENV_FILE) @printf 'CURSOR_BRIDGE_SESSIONS_LOG=%s\n' "$(SESSIONS_LOG)" >> $(ENV_FILE) @echo "已產生 $(ENV_FILE)" ## 編譯二進位檔 build: go build -o cursor-api-proxy . ## 載入 .env 後直接執行(需先執行 make env 或已有 .env) run: build @if [ -f $(ENV_FILE) ]; then \ set -a && . ./$(ENV_FILE) && set +a && ./cursor-api-proxy; \ else \ echo "找不到 $(ENV_FILE),請先執行 make env"; exit 1; \ fi ## 清除產出物 clean: rm -f cursor-api-proxy $(ENV_FILE) ## 顯示說明 help: @echo "可用目標:" @echo " make env 產生 .env(先在 Makefile 頂端填好變數)" @echo " make build 編譯 cursor-api-proxy 二進位檔" @echo " make run 編譯並載入 .env 執行" @echo " make clean 刪除二進位檔與 .env" @echo "" @echo "覆寫範例:" @echo " make env PORT=9000 API_KEY=mysecret TIMEOUT_MS=60000"