From 58ceff1f7bb1b69e2ac8ffdb8ca22ab5fc9e0b98 Mon Sep 17 00:00:00 2001 From: Pogobanane Date: Sun, 10 Jul 2022 18:10:30 +0200 Subject: [PATCH] darwin: workaround missing user --- pkgs/sops-install-secrets/main.go | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/pkgs/sops-install-secrets/main.go b/pkgs/sops-install-secrets/main.go index 508cc48..da5106b 100644 --- a/pkgs/sops-install-secrets/main.go +++ b/pkgs/sops-install-secrets/main.go @@ -368,8 +368,8 @@ func writeSecrets(secretDir string, secrets []secret, keysGid int, userMode bool return nil } -func lookupKeysGroup() (int, error) { - group, err := user.LookupGroup("keys") +func lookupGroup(groupname string) (int, error) { + group, err := user.LookupGroup(groupname) if err != nil { return 0, fmt.Errorf("Failed to lookup 'keys' group: %w", err) } @@ -380,6 +380,18 @@ func lookupKeysGroup() (int, error) { return int(gid), nil } +func lookupKeysGroup() (int, error) { + gid, err1 := lookupGroup("keys") + if err1 == nil { + return gid, nil + } + gid, err2 := lookupGroup("nogroup") + if err2 == nil { + return gid, nil + } + return 0, fmt.Errorf("Can't find group 'keys' nor 'nogroup' (%w).", err2) +} + func (app *appContext) loadSopsFile(s *secret) (*secretFile, error) { if app.checkMode == Manifest { return &secretFile{firstSecret: s}, nil