stario/signal_error.go

45 lines
766 B
Go
Raw Permalink Normal View History

package stario
import "errors"
var (
ErrSignalInterrupt = errors.New("interrupt")
ErrSignalStop = errors.New("stop")
ErrSignalQuit = errors.New("quit")
)
type inputSignalError struct {
msg string
cause error
}
func (e *inputSignalError) Error() string {
return e.msg
}
func (e *inputSignalError) Unwrap() error {
return e.cause
}
func signalErrorForType(sigtype rune) error {
switch sigtype {
case 0x03:
return &inputSignalError{
msg: "SIGNAL SIGINT RECIVED",
cause: ErrSignalInterrupt,
}
case 0x1a:
return &inputSignalError{
msg: "SIGNAL SIGSTOP RECIVED",
cause: ErrSignalStop,
}
case 0x1c:
return &inputSignalError{
msg: "SIGNAL SIGQUIT RECIVED",
cause: ErrSignalQuit,
}
default:
return nil
}
}