feat: Add Gemini provider env vars to Makefile and CLI options
- Add PROVIDER, GEMINI_ACCOUNT_DIR, GEMINI_BROWSER_VISIBLE, GEMINI_MAX_SESSIONS to Makefile - Update gemini-login command to support --visible flag - Add help text showing env vars and usage examples - Display session save location and browser visibility on startup
This commit is contained in:
parent
33a0e53709
commit
df22640d6a
12
Makefile
12
Makefile
|
|
@ -43,6 +43,12 @@ ANTHROPIC_BASE_HOST ?= $(HOST)
|
|||
TLS_CERT ?=
|
||||
TLS_KEY ?=
|
||||
|
||||
# ── Gemini Web Provider ───────────────────────
|
||||
PROVIDER ?= cursor
|
||||
GEMINI_ACCOUNT_DIR ?=
|
||||
GEMINI_BROWSER_VISIBLE ?= false
|
||||
GEMINI_MAX_SESSIONS ?= 3
|
||||
|
||||
# ── 記錄 ──────────────────────────────────────
|
||||
SESSIONS_LOG ?=
|
||||
|
||||
|
|
@ -84,6 +90,12 @@ env:
|
|||
@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)
|
||||
@printf '# ── Provider 設定 ───────────────────────────\n' >> $(ENV_FILE)
|
||||
@printf 'CURSOR_BRIDGE_PROVIDER=%s\n' "$(PROVIDER)" >> $(ENV_FILE)
|
||||
@printf '# Gemini Web Provider 設定(當 PROVIDER=gemini-web 時使用)\n' >> $(ENV_FILE)
|
||||
@printf 'GEMINI_ACCOUNT_DIR=%s\n' "$(GEMINI_ACCOUNT_DIR)" >> $(ENV_FILE)
|
||||
@printf 'GEMINI_BROWSER_VISIBLE=%s\n' "$(GEMINI_BROWSER_VISIBLE)" >> $(ENV_FILE)
|
||||
@printf 'GEMINI_MAX_SESSIONS=%s\n' "$(GEMINI_MAX_SESSIONS)" >> $(ENV_FILE)
|
||||
@echo "已產生 $(ENV_FILE)"
|
||||
|
||||
## 編譯二進位檔
|
||||
|
|
|
|||
|
|
@ -6,12 +6,24 @@ import (
|
|||
"cursor-api-proxy/internal/providers/geminiweb"
|
||||
"fmt"
|
||||
"os"
|
||||
"strings"
|
||||
)
|
||||
|
||||
func main() {
|
||||
accountName := ""
|
||||
if len(os.Args) > 1 {
|
||||
accountName = os.Args[1]
|
||||
visible := false
|
||||
|
||||
// 解析命令列參數
|
||||
for i := 1; i < len(os.Args); i++ {
|
||||
arg := os.Args[i]
|
||||
if arg == "--visible" || arg == "-v" {
|
||||
visible = true
|
||||
} else if arg == "--help" || arg == "-h" {
|
||||
printHelp()
|
||||
os.Exit(0)
|
||||
} else if !strings.HasPrefix(arg, "-") {
|
||||
accountName = arg
|
||||
}
|
||||
}
|
||||
|
||||
e := env.OsEnvToMap()
|
||||
|
|
@ -19,10 +31,31 @@ func main() {
|
|||
cfg := config.LoadBridgeConfig(e, "")
|
||||
|
||||
cfg.GeminiAccountDir = loaded.GeminiAccountDir
|
||||
cfg.GeminiBrowserVisible = true
|
||||
// 命令列參數優先於環境變數
|
||||
cfg.GeminiBrowserVisible = visible || loaded.GeminiBrowserVisible
|
||||
|
||||
fmt.Printf("Session 儲存位置: %s\n", cfg.GeminiAccountDir)
|
||||
fmt.Printf("瀏覽器可見: %v\n", cfg.GeminiBrowserVisible)
|
||||
|
||||
if err := geminiweb.RunLogin(cfg, accountName); err != nil {
|
||||
fmt.Fprintf(os.Stderr, "Error: %v\n", err)
|
||||
os.Exit(1)
|
||||
}
|
||||
}
|
||||
|
||||
func printHelp() {
|
||||
fmt.Println("使用方法: gemini-login [options] [session-name]")
|
||||
fmt.Println("")
|
||||
fmt.Println("選項:")
|
||||
fmt.Println(" --visible, -v 顯示瀏覽器視窗(預設隱藏)")
|
||||
fmt.Println(" --help, -h 顯示此說明")
|
||||
fmt.Println("")
|
||||
fmt.Println("環境變數:")
|
||||
fmt.Println(" GEMINI_ACCOUNT_DIR Session 儲存目錄(預設: ~/.cursor-api-proxy/gemini-accounts)")
|
||||
fmt.Println(" GEMINI_BROWSER_VISIBLE 是否顯示瀏覽器(true/false,預設: false)")
|
||||
fmt.Println("")
|
||||
fmt.Println("範例:")
|
||||
fmt.Println(" gemini-login my-session")
|
||||
fmt.Println(" gemini-login --visible my-session")
|
||||
fmt.Println(" GEMINI_BROWSER_VISIBLE=true gemini-login")
|
||||
}
|
||||
|
|
|
|||
Binary file not shown.
Loading…
Reference in New Issue