4
4
"context"
5
5
"encoding/json"
6
6
"fmt"
7
- "io"
8
7
"log/slog"
9
8
"net"
10
9
"net/http"
@@ -49,13 +48,11 @@ func NewGPTScript(opts GlobalOptions) (GPTScript, error) {
49
48
defer lock .Unlock ()
50
49
gptscriptCount ++
51
50
52
- disableServer := os .Getenv ("GPT_SCRIPT_DISABLE_SERVER" ) == "true"
53
-
54
- if serverURL == "" && disableServer {
51
+ if serverURL == "" {
55
52
serverURL = os .Getenv ("GPTSCRIPT_URL" )
56
53
}
57
54
58
- if serverProcessCancel == nil && ! disableServer {
55
+ if serverProcessCancel == nil && os . Getenv ( "GPTSCRIPT_DISABLE_SERVER" ) != "true" {
59
56
if serverURL == "" {
60
57
l , err := net .Listen ("tcp" , "127.0.0.1:0" )
61
58
if err != nil {
@@ -72,14 +69,21 @@ func NewGPTScript(opts GlobalOptions) (GPTScript, error) {
72
69
73
70
ctx , cancel := context .WithCancel (context .Background ())
74
71
75
- in , _ := io .Pipe ()
76
72
serverProcess = exec .CommandContext (ctx , getCommand (), "--listen-address" , serverURL , "sdkserver" )
73
+ serverProcess .Stdout = os .Stdout
74
+ serverProcess .Stderr = os .Stderr
77
75
serverProcess .Env = append (os .Environ (), opts .toEnv ()... )
78
- serverProcess .Stdin = in
76
+ stdin , err := serverProcess .StdinPipe ()
77
+ if err != nil {
78
+ cancel ()
79
+ return nil , err
80
+ }
81
+
82
+ stdin .Write ([]byte ("start!!!" ))
79
83
80
84
serverProcessCancel = func () {
85
+ _ = stdin .Close ()
81
86
cancel ()
82
- _ = in .Close ()
83
87
}
84
88
85
89
if err := serverProcess .Start (); err != nil {
@@ -102,13 +106,15 @@ func waitForServerReady(ctx context.Context, serverURL string) error {
102
106
for {
103
107
resp , err := http .Get ("http://" + serverURL + "/healthz" )
104
108
if err != nil {
105
- slog .DebugContext (ctx , "waiting for server to become ready" )
109
+ slog .InfoContext (ctx , "waiting for server to become ready" , "err" , err )
106
110
} else {
107
111
_ = resp .Body .Close ()
108
112
109
113
if resp .StatusCode == http .StatusOK {
110
114
return nil
111
115
}
116
+
117
+ slog .InfoContext (ctx , "waiting for server to become ready" , "status" , resp .StatusCode )
112
118
}
113
119
114
120
select {
0 commit comments