commit ce4291fca88b2fc4b58dbbb41dc2fe774f7f0b1f
parent 26c5690dc5db31e5727b27bc9eacdbc43c454aad
Author: Sean Enck <sean@ttypty.com>
Date: Wed, 26 Jul 2023 21:08:56 -0400
JSON env transitioned
Diffstat:
3 files changed, 14 insertions(+), 9 deletions(-)
diff --git a/internal/app/rekey.go b/internal/app/rekey.go
@@ -79,8 +79,7 @@ func ReKey(cmd CommandOptions, r Keyer) error {
if !cmd.Confirm("proceed with rekey") {
return nil
}
-
- os.Setenv(inputs.JSONDataOutputEnv, string(inputs.JSONDataOutputRaw))
+ inputs.EnvJSONDataOutput.Set(string(inputs.JSONDataOutputRaw))
entries, err := r.JSON()
if err != nil {
return err
@@ -96,7 +95,7 @@ func ReKey(cmd CommandOptions, r Keyer) error {
}
var insertEnv []string
insertEnv = append(insertEnv, vars...)
- insertEnv = append(insertEnv, inputs.EnvModTime.Set(modTime))
+ insertEnv = append(insertEnv, inputs.EnvModTime.KeyValue(modTime))
if err := r.Insert(ReKeyEntry{Path: path, Env: insertEnv, Data: []byte(entry.Data)}); err != nil {
return err
}
diff --git a/internal/inputs/env.go b/internal/inputs/env.go
@@ -141,6 +141,12 @@ func (e EnvironmentCommand) Get() ([]string, error) {
return shlex(value)
}
-func (e environmentBase) Set(value string) string {
+// KeyValue will get the string representation of the key+value
+func (e environmentBase) KeyValue(value string) string {
return fmt.Sprintf("%s=%s", e.key, value)
}
+
+// Set will do an environment set for the value to key
+func (e environmentBase) Set(value string) {
+ os.Setenv(e.key, value)
+}
diff --git a/internal/inputs/vars.go b/internal/inputs/vars.go
@@ -25,8 +25,6 @@ const (
detectedValue = "(detected)"
// ModTimeFormat is the expected modtime format
ModTimeFormat = time.RFC3339
- // JSONDataOutputEnv controls how JSON is output
- JSONDataOutputEnv = prefixKey + "JSON_DATA_OUTPUT"
// JSONDataOutputHash means output data is hashed
JSONDataOutputHash JSONOutputMode = "hash"
// JSONDataOutputBlank means an empty entry is set
@@ -39,7 +37,7 @@ var (
// EnvClipboardMax gets the maximum clipboard time
EnvClipboardMax = EnvironmentInt{environmentBase: environmentBase{key: clipBaseEnv + "MAX"}, shortDesc: "clipboard max time", allowZero: false, defaultValue: 45}
// EnvHashLength handles the hashing output length
- EnvHashLength = EnvironmentInt{environmentBase: environmentBase{key: JSONDataOutputEnv + "_HASH_LENGTH"}, shortDesc: "hash length", allowZero: true, defaultValue: 0}
+ EnvHashLength = EnvironmentInt{environmentBase: environmentBase{key: EnvJSONDataOutput.key + "_HASH_LENGTH"}, shortDesc: "hash length", allowZero: true, defaultValue: 0}
// EnvClipOSC52 indicates if OSC52 clipboard mode is enabled
EnvClipOSC52 = EnvironmentBool{environmentBase: environmentBase{key: clipBaseEnv + "OSC52"}, defaultValue: false}
// EnvNoTOTP indicates if TOTP is disabled
@@ -74,6 +72,8 @@ var (
envKey = EnvironmentString{environmentBase: environmentBase{key: prefixKey + "KEY"}, canDefault: false}
// EnvModTime is modtime override ability for entries
EnvModTime = EnvironmentString{environmentBase: environmentBase{key: prefixKey + "SET_MODTIME"}, canDefault: true, defaultValue: ""}
+ // EnvJSONDataOutput controls how JSON is output in the 'data' field
+ EnvJSONDataOutput = EnvironmentString{environmentBase: environmentBase{key: prefixKey + "JSON_DATA_OUTPUT"}, canDefault: true, defaultValue: string(JSONDataOutputHash)}
)
type (
@@ -192,7 +192,7 @@ func ListEnvironmentVariables(showValues bool) []string {
results = append(results, e.formatEnvironmentVariable(false, EnvClipOSC52.key, no, "enable OSC52 clipboard mode", isYesNoArgs))
results = append(results, e.formatEnvironmentVariable(false, EnvKeyFile.key, "", "additional keyfile to access/protect the database", []string{"keyfile"}))
results = append(results, e.formatEnvironmentVariable(false, EnvModTime.key, ModTimeFormat, fmt.Sprintf("input modification time to set for the entry\n(expected format: %s)", ModTimeFormat), []string{"modtime"}))
- results = append(results, e.formatEnvironmentVariable(false, JSONDataOutputEnv, string(JSONDataOutputHash), fmt.Sprintf("changes what the data field in JSON outputs will contain\nuse '%s' with CAUTION", JSONDataOutputRaw), []string{string(JSONDataOutputRaw), string(JSONDataOutputHash), string(JSONDataOutputBlank)}))
+ results = append(results, e.formatEnvironmentVariable(false, EnvJSONDataOutput.key, string(JSONDataOutputHash), fmt.Sprintf("changes what the data field in JSON outputs will contain\nuse '%s' with CAUTION", JSONDataOutputRaw), []string{string(JSONDataOutputRaw), string(JSONDataOutputHash), string(JSONDataOutputBlank)}))
results = append(results, e.formatEnvironmentVariable(false, EnvHashLength.key, fmt.Sprintf("%d", EnvHashLength.defaultValue), fmt.Sprintf("maximum hash length the JSON output should contain\nwhen '%s' mode is set for JSON output", JSONDataOutputHash), intArgs))
return results
}
@@ -227,7 +227,7 @@ func FormatTOTP(value string) string {
// ParseJSONOutput handles detecting the JSON output mode
func ParseJSONOutput() (JSONOutputMode, error) {
- val := strings.ToLower(strings.TrimSpace(EnvironOrDefault(JSONDataOutputEnv, string(JSONDataOutputHash))))
+ val := strings.ToLower(strings.TrimSpace(EnvJSONDataOutput.Get()))
switch JSONOutputMode(val) {
case JSONDataOutputHash:
return JSONDataOutputHash, nil