返回提交历史
Modified
g4f-go/main.go
+12
-2
Modified
g4f-go/runtime.go
+0
-6
XFEstudio/gpt4free
Improve arguments
f5e5e458
代码差异
2 个文件
+12
-8
@@ -8,6 +8,7 @@ import (
8
8
"syscall"
9
9
"path/filepath"
10
10
"strings"
11
"time"
11
12
)
12
13
13
14
// main handles the `g4f-go <command>` interface. Anything unknown is forwarded
@@ -29,7 +30,9 @@ Environment:
29
30
`, Version, PythonVer)
30
31
}
31
32
32
func main(ctx context.Context, binDir, py string, args []string) int {
33
func main() int {
34
binDir := installDir()
35
args := normalizeArgs(os.Args)
33
36
if len(args) == 0 {
34
37
printHelp()
35
38
return 0
@@ -86,7 +89,7 @@ func main(ctx context.Context, binDir, py string, args []string) int {
86
89
return code
87
90
case "bootstrap":
88
91
// Refresh the embedded package installation (e.g. after updating g4f-go).
89
code, err := runPython(ctx, py, []string{"-m", "pip", "install", "--no-input", "g4f"}, pipEnv(binDir)...)
92
code, err := runPython(ctx, py, []string{"-m", "pip", "install", "--no-input", "g4f[slim]"}, pipEnv(binDir)...)
90
93
if err != nil {
91
94
fmt.Fprintln(os.Stderr, "g4f-go:", err)
92
95
return 1
@@ -98,6 +101,13 @@ func main(ctx context.Context, binDir, py string, args []string) int {
98
101
fmt.Println(py)
99
102
return 0
100
103
}
104
105
exe := pythonExecutable(binDir)
106
start := time.Now()
107
if err := installG4F(binDir, exe, start); err != nil {
108
fmt.Fprintln(os.Stderr, "g4f-go:", err)
109
return 1
110
}
101
111
102
112
// Default: forward everything to the g4f module.
103
113
code, err := runPython(ctx, py, append([]string{"-m", "g4f"}, args...))
@@ -47,9 +47,6 @@ func ensureRuntime() (string, error) {
47
47
if _, err := os.Stat(stamp); err == nil {
48
48
return exe, nil // already installed
49
49
}
50
if err := installG4F(binDir, exe, start); err != nil {
51
return "", err
52
}
53
50
return exe, nil
54
51
}
55
52
@@ -65,9 +62,6 @@ func ensureRuntime() (string, error) {
65
62
if _, err := os.Stat(exe); err != nil {
66
63
return "", fmt.Errorf("python runtime extracted but %s is missing", exe)
67
64
}
68
if err := installG4F(binDir, exe, start); err != nil {
69
return "", err
70
}
71
65
return exe, nil
72
66
}
73
67