mirror of
https://github.com/Luzifer/go_helpers.git
synced 2024-12-23 20:41:19 +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