MCPcopy Index your code
hub / github.com/jetify-com/devbox / error

Method error

nix/command.go:199–238  ·  view source on GitHub ↗
(ctx context.Context, err error)

Source from the content-addressed store, hash-verified

197}
198
199func (c *Cmd) error(ctx context.Context, err error) error {
200 if err == nil {
201 return nil
202 }
203
204 cmdErr := &cmdError{err: err}
205 if errors.Is(err, exec.ErrNotFound) {
206 cmdErr.msg = fmt.Sprintf("nix: %s not found in $PATH", c.Args[0])
207 }
208
209 switch {
210 case errors.Is(ctx.Err(), context.Canceled):
211 cmdErr.msg = "nix: command canceled"
212 case errors.Is(ctx.Err(), context.DeadlineExceeded):
213 cmdErr.msg = "nix: command timed out"
214 default:
215 cmdErr.msg = "nix: command error"
216 }
217 cmdErr.msg += ": " + c.String()
218
219 var exitErr *exec.ExitError
220 if errors.As(err, &exitErr) {
221 if stderr := c.stderrExcerpt(exitErr.Stderr); len(stderr) != 0 {
222 cmdErr.msg += ": " + stderr
223 }
224 if exitErr.Exited() {
225 cmdErr.msg += fmt.Sprintf(": exit code %d", exitErr.ExitCode())
226 return cmdErr
227 }
228 if stat, ok := exitErr.Sys().(syscall.WaitStatus); ok && stat.Signaled() {
229 cmdErr.msg += fmt.Sprintf(": exit due to signal %d (%[1]s)", stat.Signal())
230 return cmdErr
231 }
232 }
233
234 if !errors.Is(err, ctx.Err()) {
235 cmdErr.msg += ": " + err.Error()
236 }
237 return cmdErr
238}
239
240func (*Cmd) stderrExcerpt(stderr []byte) string {
241 stderr = bytes.TrimSpace(stderr)

Callers 13

CombinedOutputMethod · 0.95
OutputMethod · 0.95
RunMethod · 0.95
logToFileFunction · 0.80
handleOpenInVSCodeFunction · 0.80
setupDevboxLauncherFunction · 0.80
setupSSHConfigFunction · 0.80
connectToRemoteFunction · 0.80
ensureDirFunction · 0.80
getDevboxScriptsFunction · 0.80
getDevboxPackagesFunction · 0.80
mainFunction · 0.80

Calls 4

StringMethod · 0.95
stderrExcerptMethod · 0.95
IsMethod · 0.80
ErrorMethod · 0.45

Tested by

no test coverage detected