commit 7dd4bcf81387321aff3d87674ac5bc5e5939ba87
parent 902d78ecf8f0a7025ee88bedbbf55409c19e9d9d
Author: Sean Enck <sean@ttypty.com>
Date: Thu, 30 Mar 2023 18:34:23 -0400
better rekey error
Diffstat:
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" {