diff options
| author | Ophestra <cat@gensokyo.uk> | 2025-09-24 19:36:55 +0900 |
|---|---|---|
| committer | Ophestra <cat@gensokyo.uk> | 2025-09-24 19:36:55 +0900 |
| commit | 409ed172c854e548352ed1480eedfa6d75572e43 (patch) | |
| tree | 93b85693e6b756549aa28edaf503b1e0a5b3e067 | |
| parent | 1c4f593566943d8a0ce16eb3cae77f8c50238202 (diff) | |
internal/app: handle LookupGroup error
This could return errnos from the cgo calls.
Signed-off-by: Ophestra <cat@gensokyo.uk>
| -rw-r--r-- | internal/app/seal.go | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/internal/app/seal.go b/internal/app/seal.go index 2d7fea39..c7dd9d63 100644 --- a/internal/app/seal.go +++ b/internal/app/seal.go @@ -9,6 +9,7 @@ import ( "io" "io/fs" "os" + "os/user" "slices" "strconv" "strings" @@ -187,7 +188,12 @@ func (seal *outcome) finalise(ctx context.Context, k sys.State, config *hst.Conf seal.user.supp = make([]string, len(config.Groups)) for i, name := range config.Groups { if g, err := k.LookupGroup(name); err != nil { - return newWithMessageError(fmt.Sprintf("unknown group %q", name), err) + var unknownGroupError user.UnknownGroupError + if errors.As(err, &unknownGroupError) { + return newWithMessageError(fmt.Sprintf("unknown group %q", name), unknownGroupError) + } else { + return &hst.AppError{Step: "look up group by name", Err: err} + } } else { seal.user.supp[i] = g.Gid } |
