diff --git a/container/errors.go b/container/errors.go index 884c8a0..2bcb497 100644 --- a/container/errors.go +++ b/container/errors.go @@ -7,31 +7,36 @@ import ( "hakurei.app/container/check" "hakurei.app/container/vfs" + "hakurei.app/message" ) // messageFromError returns a printable error message for a supported concrete type. -func messageFromError(err error) (string, bool) { - if m, ok := messagePrefixP[MountError]("cannot ", err); ok { - return m, ok +func messageFromError(err error) (m string, ok bool) { + if m, ok = messagePrefixP[MountError]("cannot ", err); ok { + return } - if m, ok := messagePrefixP[os.PathError]("cannot ", err); ok { - return m, ok + if m, ok = messagePrefixP[os.PathError]("cannot ", err); ok { + return } - if m, ok := messagePrefixP[check.AbsoluteError]("", err); ok { - return m, ok + if m, ok = messagePrefixP[check.AbsoluteError](zeroString, err); ok { + return } - if m, ok := messagePrefix[OpRepeatError]("", err); ok { - return m, ok + if m, ok = messagePrefix[OpRepeatError](zeroString, err); ok { + return } - if m, ok := messagePrefix[OpStateError]("", err); ok { - return m, ok + if m, ok = messagePrefix[OpStateError](zeroString, err); ok { + return } - if m, ok := messagePrefixP[vfs.DecoderError]("cannot ", err); ok { - return m, ok + if m, ok = messagePrefixP[vfs.DecoderError]("cannot ", err); ok { + return } - if m, ok := messagePrefix[TmpfsSizeError]("", err); ok { - return m, ok + if m, ok = messagePrefix[TmpfsSizeError](zeroString, err); ok { + return + } + + if m, ok = message.GetMessage(err); ok { + return } return zeroString, false