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_CERT ?=
|
||||||
TLS_KEY ?=
|
TLS_KEY ?=
|
||||||
|
|
||||||
|
# ── Gemini Web Provider ───────────────────────
|
||||||
|
PROVIDER ?= cursor
|
||||||
|
GEMINI_ACCOUNT_DIR ?=
|
||||||
|
GEMINI_BROWSER_VISIBLE ?= false
|
||||||
|
GEMINI_MAX_SESSIONS ?= 3
|
||||||
|
|
||||||
# ── 記錄 ──────────────────────────────────────
|
# ── 記錄 ──────────────────────────────────────
|
||||||
SESSIONS_LOG ?=
|
SESSIONS_LOG ?=
|
||||||
|
|
||||||
|
|
@ -84,6 +90,12 @@ env:
|
||||||
@printf 'CURSOR_BRIDGE_TLS_CERT=%s\n' "$(TLS_CERT)" >> $(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_TLS_KEY=%s\n' "$(TLS_KEY)" >> $(ENV_FILE)
|
||||||
@printf 'CURSOR_BRIDGE_SESSIONS_LOG=%s\n' "$(SESSIONS_LOG)" >> $(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)"
|
@echo "已產生 $(ENV_FILE)"
|
||||||
|
|
||||||
## 編譯二進位檔
|
## 編譯二進位檔
|
||||||
|
|
|
||||||
|
|
@ -6,12 +6,24 @@ import (
|
||||||
"cursor-api-proxy/internal/providers/geminiweb"
|
"cursor-api-proxy/internal/providers/geminiweb"
|
||||||
"fmt"
|
"fmt"
|
||||||
"os"
|
"os"
|
||||||
|
"strings"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
accountName := ""
|
accountName := ""
|
||||||
if len(os.Args) > 1 {
|
visible := false
|
||||||
accountName = os.Args[1]
|
|
||||||
|
// 解析命令列參數
|
||||||
|
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()
|
e := env.OsEnvToMap()
|
||||||
|
|
@ -19,10 +31,31 @@ func main() {
|
||||||
cfg := config.LoadBridgeConfig(e, "")
|
cfg := config.LoadBridgeConfig(e, "")
|
||||||
|
|
||||||
cfg.GeminiAccountDir = loaded.GeminiAccountDir
|
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 {
|
if err := geminiweb.RunLogin(cfg, accountName); err != nil {
|
||||||
fmt.Fprintf(os.Stderr, "Error: %v\n", err)
|
fmt.Fprintf(os.Stderr, "Error: %v\n", err)
|
||||||
os.Exit(1)
|
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