1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
|
package core
import (
"fmt"
"google.golang.org/genproto/googleapis/rpc/status"
)
type CommandError interface {
error
ExitCode() int32
Status() *status.Status
}
type runError struct {
err error
exitCode int32
status *status.Status
}
// Error implements error
func (r *runError) Error() string {
if r.err != nil {
return r.err.Error()
}
return fmt.Sprintf("non-zero exit code: %d", r.exitCode)
}
// runError implements CommandError
func (r *runError) ExitCode() int32 {
return r.exitCode
}
// runError implements CommandError
func (r *runError) Status() *status.Status {
return r.status
}
|