commit b83e31744e3b1465ab9b19d23a272e93a0a5c603
parent b9d3cdbdee5f32fbf2d51f22cb31636b22e70b3f
Author: Sean Enck <sean@ttypty.com>
Date: Tue, 25 Jul 2023 20:39:36 -0400
more merging
Diffstat:
4 files changed, 49 insertions(+), 70 deletions(-)
diff --git a/internal/inputs/json.go b/internal/inputs/json.go
@@ -1,35 +0,0 @@
-// Package inputs handles user inputs/UI elements for JSON
-package inputs
-
-import (
- "fmt"
- "strings"
-)
-
-const (
- // JSONDataOutputHash means output data is hashed
- JSONDataOutputHash JSONOutputMode = "hash"
- // JSONDataOutputBlank means an empty entry is set
- JSONDataOutputBlank JSONOutputMode = "empty"
- // JSONDataOutputRaw means the RAW (unencrypted) value is displayed
- JSONDataOutputRaw JSONOutputMode = "plaintext"
-)
-
-type (
- // JSONOutputMode is the output mode definition
- JSONOutputMode string
-)
-
-// ParseJSONOutput handles detecting the JSON output mode
-func ParseJSONOutput() (JSONOutputMode, error) {
- val := strings.ToLower(strings.TrimSpace(EnvironOrDefault(JSONDataOutputEnv, string(JSONDataOutputHash))))
- switch JSONOutputMode(val) {
- case JSONDataOutputHash:
- return JSONDataOutputHash, nil
- case JSONDataOutputBlank:
- return JSONDataOutputBlank, nil
- case JSONDataOutputRaw:
- return JSONDataOutputRaw, nil
- }
- return JSONDataOutputBlank, fmt.Errorf("invalid JSON output mode: %s", val)
-}
diff --git a/internal/inputs/json_test.go b/internal/inputs/json_test.go
@@ -1,35 +0,0 @@
-package inputs_test
-
-import (
- "os"
- "testing"
-
- "github.com/enckse/lockbox/internal/inputs"
-)
-
-func TestParseJSONMode(t *testing.T) {
- defer os.Clearenv()
- m, err := inputs.ParseJSONOutput()
- if m != inputs.JSONDataOutputHash || err != nil {
- t.Error("invalid mode read")
- }
- os.Setenv("LOCKBOX_JSON_DATA_OUTPUT", "hAsH ")
- m, err = inputs.ParseJSONOutput()
- if m != inputs.JSONDataOutputHash || err != nil {
- t.Error("invalid mode read")
- }
- os.Setenv("LOCKBOX_JSON_DATA_OUTPUT", "EMPTY")
- m, err = inputs.ParseJSONOutput()
- if m != inputs.JSONDataOutputBlank || err != nil {
- t.Error("invalid mode read")
- }
- os.Setenv("LOCKBOX_JSON_DATA_OUTPUT", " PLAINtext ")
- m, err = inputs.ParseJSONOutput()
- if m != inputs.JSONDataOutputRaw || err != nil {
- t.Error("invalid mode read")
- }
- os.Setenv("LOCKBOX_JSON_DATA_OUTPUT", "a")
- if _, err = inputs.ParseJSONOutput(); err == nil || err.Error() != "invalid JSON output mode: a" {
- t.Errorf("invalid error: %v", err)
- }
-}
diff --git a/internal/inputs/vars.go b/internal/inputs/vars.go
@@ -61,9 +61,17 @@ const (
JSONDataOutputEnv = prefixKey + "JSON_DATA_OUTPUT"
defaultHashLength = 0
hashJSONLengthEnv = JSONDataOutputEnv + "_HASH_LENGTH"
+ // JSONDataOutputHash means output data is hashed
+ JSONDataOutputHash JSONOutputMode = "hash"
+ // JSONDataOutputBlank means an empty entry is set
+ JSONDataOutputBlank JSONOutputMode = "empty"
+ // JSONDataOutputRaw means the RAW (unencrypted) value is displayed
+ JSONDataOutputRaw JSONOutputMode = "plaintext"
)
type (
+ // JSONOutputMode is the output mode definition
+ JSONOutputMode string
environmentOutput struct {
showValues bool
}
@@ -260,3 +268,17 @@ func FormatTOTP(value string) string {
}
return u.String()
}
+
+// ParseJSONOutput handles detecting the JSON output mode
+func ParseJSONOutput() (JSONOutputMode, error) {
+ val := strings.ToLower(strings.TrimSpace(EnvironOrDefault(JSONDataOutputEnv, string(JSONDataOutputHash))))
+ switch JSONOutputMode(val) {
+ case JSONDataOutputHash:
+ return JSONDataOutputHash, nil
+ case JSONDataOutputBlank:
+ return JSONDataOutputBlank, nil
+ case JSONDataOutputRaw:
+ return JSONDataOutputRaw, nil
+ }
+ return JSONDataOutputBlank, fmt.Errorf("invalid JSON output mode: %s", val)
+}
diff --git a/internal/inputs/vars_test.go b/internal/inputs/vars_test.go
@@ -219,3 +219,30 @@ func TestFormatTOTP(t *testing.T) {
t.Errorf("invalid totp token: %s", otp)
}
}
+
+func TestParseJSONMode(t *testing.T) {
+ defer os.Clearenv()
+ m, err := inputs.ParseJSONOutput()
+ if m != inputs.JSONDataOutputHash || err != nil {
+ t.Error("invalid mode read")
+ }
+ os.Setenv("LOCKBOX_JSON_DATA_OUTPUT", "hAsH ")
+ m, err = inputs.ParseJSONOutput()
+ if m != inputs.JSONDataOutputHash || err != nil {
+ t.Error("invalid mode read")
+ }
+ os.Setenv("LOCKBOX_JSON_DATA_OUTPUT", "EMPTY")
+ m, err = inputs.ParseJSONOutput()
+ if m != inputs.JSONDataOutputBlank || err != nil {
+ t.Error("invalid mode read")
+ }
+ os.Setenv("LOCKBOX_JSON_DATA_OUTPUT", " PLAINtext ")
+ m, err = inputs.ParseJSONOutput()
+ if m != inputs.JSONDataOutputRaw || err != nil {
+ t.Error("invalid mode read")
+ }
+ os.Setenv("LOCKBOX_JSON_DATA_OUTPUT", "a")
+ if _, err = inputs.ParseJSONOutput(); err == nil || err.Error() != "invalid JSON output mode: a" {
+ t.Errorf("invalid error: %v", err)
+ }
+}