gogcli/internal/cmd/exit.go
2025-12-26 10:15:12 +00:00

37 lines
459 B
Go

package cmd
import "errors"
type ExitError struct {
Code int
Err error
}
func (e *ExitError) Error() string {
if e == nil || e.Err == nil {
return ""
}
return e.Err.Error()
}
func (e *ExitError) Unwrap() error {
if e == nil {
return nil
}
return e.Err
}
func ExitCode(err error) int {
if err == nil {
return 0
}
var ee *ExitError
if errors.As(err, &ee) && ee != nil {
if ee.Code < 0 {
return 1
}
return ee.Code
}
return 1
}