mirror of
https://github.com/Luzifer/go_helpers.git
synced 2024-12-25 05:21:20 +00:00
Added environment helpers
This commit is contained in:
parent
6abbbafaad
commit
06011e0744
3 changed files with 94 additions and 0 deletions
26
env/env.go
vendored
Normal file
26
env/env.go
vendored
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
package env
|
||||||
|
|
||||||
|
import "strings"
|
||||||
|
|
||||||
|
// ListToMap converts a list of strings in format KEY=VALUE into a map
|
||||||
|
func ListToMap(list []string) map[string]string {
|
||||||
|
out := map[string]string{}
|
||||||
|
for _, entry := range list {
|
||||||
|
if len(entry) == 0 || entry[0] == '#' {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
|
parts := strings.SplitN(entry, "=", 2)
|
||||||
|
out[parts[0]] = strings.Trim(parts[1], "\"")
|
||||||
|
}
|
||||||
|
return out
|
||||||
|
}
|
||||||
|
|
||||||
|
// MapToList converts a map into a list of strings in format KEY=VALUE
|
||||||
|
func MapToList(envMap map[string]string) []string {
|
||||||
|
out := []string{}
|
||||||
|
for k, v := range envMap {
|
||||||
|
out = append(out, k+"="+v)
|
||||||
|
}
|
||||||
|
return out
|
||||||
|
}
|
13
env/env_suite_test.go
vendored
Normal file
13
env/env_suite_test.go
vendored
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
package env_test
|
||||||
|
|
||||||
|
import (
|
||||||
|
. "github.com/onsi/ginkgo"
|
||||||
|
. "github.com/onsi/gomega"
|
||||||
|
|
||||||
|
"testing"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestEnv(t *testing.T) {
|
||||||
|
RegisterFailHandler(Fail)
|
||||||
|
RunSpecs(t, "Env Suite")
|
||||||
|
}
|
55
env/env_test.go
vendored
Normal file
55
env/env_test.go
vendored
Normal file
|
@ -0,0 +1,55 @@
|
||||||
|
package env_test
|
||||||
|
|
||||||
|
import (
|
||||||
|
"sort"
|
||||||
|
|
||||||
|
. "github.com/Luzifer/go_helpers/env"
|
||||||
|
|
||||||
|
. "github.com/onsi/ginkgo"
|
||||||
|
. "github.com/onsi/gomega"
|
||||||
|
)
|
||||||
|
|
||||||
|
var _ = Describe("Env", func() {
|
||||||
|
|
||||||
|
Context("ListToMap", func() {
|
||||||
|
var (
|
||||||
|
list = []string{
|
||||||
|
"FIRST_KEY=firstvalue",
|
||||||
|
"SECOND_KEY=secondvalue",
|
||||||
|
"WEIRD=",
|
||||||
|
"",
|
||||||
|
}
|
||||||
|
emap = map[string]string{
|
||||||
|
"FIRST_KEY": "firstvalue",
|
||||||
|
"SECOND_KEY": "secondvalue",
|
||||||
|
"WEIRD": "",
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
It("should convert the list in the expected way", func() {
|
||||||
|
Expect(ListToMap(list)).To(Equal(emap))
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
Context("MapToList", func() {
|
||||||
|
var (
|
||||||
|
list = []string{
|
||||||
|
"FIRST_KEY=firstvalue",
|
||||||
|
"SECOND_KEY=secondvalue",
|
||||||
|
"WEIRD=",
|
||||||
|
}
|
||||||
|
emap = map[string]string{
|
||||||
|
"FIRST_KEY": "firstvalue",
|
||||||
|
"SECOND_KEY": "secondvalue",
|
||||||
|
"WEIRD": "",
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
It("should convert the map in the expected way", func() {
|
||||||
|
l := MapToList(emap)
|
||||||
|
sort.Strings(l) // Workaround: The test needs the elements to be in same order
|
||||||
|
Expect(l).To(Equal(list))
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
})
|
Loading…
Reference in a new issue