You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
log.debug('spawn: server ready at url=%s', self.url)
184
+
mark_ready(url, false)
148
185
end
149
186
end
150
187
end,
151
188
stderr=function(err, data)
152
189
iferrthen
153
-
self.spawn_promise:reject(err)
190
+
ifnotreadythen
191
+
self.spawn_promise:reject(err)
192
+
end
154
193
safe_call(opts.on_error, err)
155
194
return
156
195
end
196
+
157
197
ifdatathen
158
-
localurl=extract_server_url(data)
198
+
stderr_buf=append_chunk(stderr_buf, data)
199
+
localurl=extract_server_url(stderr_buf)
159
200
ifurlthen
160
-
self.url=normalize_server_url(url)
161
-
self.spawn_promise:resolve(self)
162
-
safe_call(opts.on_ready, self.job, self.url)
163
-
log.debug('spawn: server ready at url=%s (detected from stderr)', self.url)
201
+
mark_ready(url, true)
164
202
return
165
203
end
166
204
@@ -181,6 +219,10 @@ function OpencodeServer:spawn(opts)
181
219
end
182
220
end,
183
221
}), function(exit_opts)
222
+
ifnotreadythen
223
+
self.spawn_promise:reject(string.format('opencode server exited before ready (code=%s signal=%s)', tostring(exit_opts.code), tostring(exit_opts.signal)))
224
+
end
225
+
184
226
-- Clear fields if not already cleared by shutdown()
185
227
self.job=nil
186
228
self.url=nil
@@ -191,6 +233,29 @@ function OpencodeServer:spawn(opts)
0 commit comments