From f24dd4ab8c3f1440654f9c5c18e50f03fdf85e27 Mon Sep 17 00:00:00 2001 From: Ophestra Date: Fri, 29 Aug 2025 01:37:13 +0900 Subject: container/init: handle unwrapped errors This is much cleaner from both the return statement and the error handling. Signed-off-by: Ophestra --- container/init.go | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) (limited to 'container/init.go') diff --git a/container/init.go b/container/init.go index 8b0a7a26..e56b4cf0 100644 --- a/container/init.go +++ b/container/init.go @@ -184,10 +184,14 @@ func initEntrypoint(k syscallDispatcher, prepareLogger func(prefix string), setV } if err := op.early(state, k); err != nil { - k.printBaseErr(err, - fmt.Sprintf("cannot prepare op at index %d:", i)) - k.beforeExit() - k.exit(1) + if m, ok := messageFromError(err); ok { + k.fatal(m) + } else { + k.printBaseErr(err, + fmt.Sprintf("cannot prepare op at index %d:", i)) + k.beforeExit() + k.exit(1) + } } } @@ -224,10 +228,14 @@ func initEntrypoint(k syscallDispatcher, prepareLogger func(prefix string), setV // ops already checked during early setup k.verbosef("%s %s", op.prefix(), op) if err := op.apply(state, k); err != nil { - k.printBaseErr(err, - fmt.Sprintf("cannot apply op at index %d:", i)) - k.beforeExit() - k.exit(1) + if m, ok := messageFromError(err); ok { + k.fatal(m) + } else { + k.printBaseErr(err, + fmt.Sprintf("cannot apply op at index %d:", i)) + k.beforeExit() + k.exit(1) + } } } -- cgit v1.3.1