lockbox

password manager
Log | Files | Refs | README | LICENSE

commit 7dd4bcf81387321aff3d87674ac5bc5e5939ba87
parent 902d78ecf8f0a7025ee88bedbbf55409c19e9d9d
Author: Sean Enck <sean@ttypty.com>
Date:   Thu, 30 Mar 2023 18:34:23 -0400

better rekey error

Diffstat:
Minternal/inputs/env.go | 9+++++++--
Minternal/inputs/env_test.go | 4++--
2 files changed, 9 insertions(+), 4 deletions(-)

diff --git a/internal/inputs/env.go b/internal/inputs/env.go @@ -99,8 +99,11 @@ func SetReKey() error { hasStore := false hasKey := false hasKeyFile := false + var env []string for _, k := range []string{keyModeEnv, keyEnv, KeyFileEnv, StoreEnv} { - val := os.Getenv(fmt.Sprintf("%s%s", k, reKeySuffix)) + newKey := fmt.Sprintf("%s%s", k, reKeySuffix) + val := os.Getenv(newKey) + envVal := "unset" if val != "" { switch k { case StoreEnv: @@ -110,13 +113,15 @@ func SetReKey() error { case KeyFileEnv: hasKeyFile = true } + envVal = "set" } if err := os.Setenv(k, val); err != nil { return err } + env = append(env, fmt.Sprintf("%s=[%s]", newKey, envVal)) } if !hasStore || (!hasKey && !hasKeyFile) { - return errors.New("missing required environment variables for rekey") + return fmt.Errorf("missing required environment variables for rekey: %s", strings.Join(env, " ")) } return nil } diff --git a/internal/inputs/env_test.go b/internal/inputs/env_test.go @@ -176,12 +176,12 @@ func TestReKey(t *testing.T) { os.Setenv("LOCKBOX_KEY_NEW", "") os.Setenv("LOCKBOX_KEYFILE_NEW", "") err := inputs.SetReKey() - if err == nil || err.Error() != "missing required environment variables for rekey" { + if err == nil || err.Error() != "missing required environment variables for rekey: LOCKBOX_KEYMODE_NEW=[unset] LOCKBOX_KEY_NEW=[unset] LOCKBOX_KEYFILE_NEW=[unset] LOCKBOX_STORE_NEW=[unset]" { t.Errorf("failed: %v", err) } os.Setenv("LOCKBOX_STORE_NEW", "abc") err = inputs.SetReKey() - if err == nil || err.Error() != "missing required environment variables for rekey" { + if err == nil || err.Error() != "missing required environment variables for rekey: LOCKBOX_KEYMODE_NEW=[unset] LOCKBOX_KEY_NEW=[unset] LOCKBOX_KEYFILE_NEW=[unset] LOCKBOX_STORE_NEW=[set]" { t.Errorf("failed: %v", err) } if os.Getenv("LOCKBOX_STORE") != "abc" {