lockbox

password manager
Log | Files | Refs | README | LICENSE

commit 8bdbcaeb5c0b7788b9f2d5603ce91c0bfcd915e0
parent 0778bd3edf758f173104d02d889fcad17b044ee5
Author: Sean Enck <sean@ttypty.com>
Date:   Wed, 26 Jul 2023 21:25:27 -0400

rekey refactor

Diffstat:
Minternal/inputs/vars.go | 36+++++++++++++++---------------------
1 file changed, 15 insertions(+), 21 deletions(-)

diff --git a/internal/inputs/vars.go b/internal/inputs/vars.go @@ -85,31 +85,25 @@ func GetReKey(args []string) ([]string, error) { if err := set.Parse(args); err != nil { return nil, err } - mapped := map[string]string{ - envKeyMode.key: *keyMode, - envKey.key: *key, - EnvKeyFile.key: *keyFile, - EnvStore.key: *store, + type keyer struct { + env EnvironmentString + has bool + in string } - hasStore := false - hasKey := false - hasKeyFile := false + check := func(in string, e EnvironmentString) keyer { + val := strings.TrimSpace(in) + return keyer{has: val != "", env: e, in: in} + } + inStore := check(*store, EnvStore) + inKey := check(*key, envKey) + inKeyFile := check(*keyFile, EnvKeyFile) + inKeyMode := check(*keyMode, envKeyMode) var out []string - for k, val := range mapped { - if val != "" { - switch k { - case EnvStore.key: - hasStore = true - case envKey.key: - hasKey = true - case EnvKeyFile.key: - hasKeyFile = true - } - } - out = append(out, fmt.Sprintf("%s=%s", k, val)) + for _, k := range []keyer{inStore, inKey, inKeyFile, inKeyMode} { + out = append(out, k.env.KeyValue(k.in)) } sort.Strings(out) - if !hasStore || (!hasKey && !hasKeyFile) { + if !inStore.has || (!inKey.has && !inKeyFile.has) { return nil, fmt.Errorf("missing required arguments for rekey: %s", strings.Join(out, " ")) } return out, nil