summaryrefslogtreecommitdiff
path: root/vendor/github.com/spf13/viper/internal/encoding/dotenv/codec.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/spf13/viper/internal/encoding/dotenv/codec.go')
-rw-r--r--vendor/github.com/spf13/viper/internal/encoding/dotenv/codec.go61
1 files changed, 0 insertions, 61 deletions
diff --git a/vendor/github.com/spf13/viper/internal/encoding/dotenv/codec.go b/vendor/github.com/spf13/viper/internal/encoding/dotenv/codec.go
deleted file mode 100644
index 3ebc76f02..000000000
--- a/vendor/github.com/spf13/viper/internal/encoding/dotenv/codec.go
+++ /dev/null
@@ -1,61 +0,0 @@
-package dotenv
-
-import (
- "bytes"
- "fmt"
- "sort"
- "strings"
-
- "github.com/subosito/gotenv"
-)
-
-const keyDelimiter = "_"
-
-// Codec implements the encoding.Encoder and encoding.Decoder interfaces for encoding data containing environment variables
-// (commonly called as dotenv format).
-type Codec struct{}
-
-func (Codec) Encode(v map[string]any) ([]byte, error) {
- flattened := map[string]any{}
-
- flattened = flattenAndMergeMap(flattened, v, "", keyDelimiter)
-
- keys := make([]string, 0, len(flattened))
-
- for key := range flattened {
- keys = append(keys, key)
- }
-
- sort.Strings(keys)
-
- var buf bytes.Buffer
-
- for _, key := range keys {
- _, err := buf.WriteString(fmt.Sprintf("%v=%v\n", strings.ToUpper(key), flattened[key]))
- if err != nil {
- return nil, err
- }
- }
-
- return buf.Bytes(), nil
-}
-
-func (Codec) Decode(b []byte, v map[string]any) error {
- var buf bytes.Buffer
-
- _, err := buf.Write(b)
- if err != nil {
- return err
- }
-
- env, err := gotenv.StrictParse(&buf)
- if err != nil {
- return err
- }
-
- for key, value := range env {
- v[key] = value
- }
-
- return nil
-}