Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
lima-vm
GitHub Repository: lima-vm/lima
Path: blob/master/pkg/osutil/exit.go
2606 views
1
// SPDX-FileCopyrightText: Copyright The Lima Authors
2
// SPDX-License-Identifier: Apache-2.0
3
4
package osutil
5
6
import (
7
"os"
8
"os/exec"
9
)
10
11
// HandleExitError calls os.Exit immediately without printing an error, only if the error is an *exec.ExitError (non-nil).
12
//
13
// The function does not call os.Exit if the error is of any other type, even if it wraps an *exec.ExitError,
14
// so that the caller can print the error message.
15
func HandleExitError(err error) {
16
if err == nil {
17
return
18
}
19
20
// Do not use errors.As, because we want to match only *exec.ExitError, not wrapped ones.
21
// https://github.com/lima-vm/lima/pull/4168
22
if exitErr, ok := err.(*exec.ExitError); ok {
23
os.Exit(exitErr.ExitCode()) //nolint:revive // it's intentional to call os.Exit in this function
24
return
25
}
26
}
27
28