commit 4ea955eacd50ce6c2da07101be855ee1a5cd6c8e Author: 李光春 Date: Tue May 24 23:07:12 2022 +0800 - init diff --git a/.drone.yml b/.drone.yml new file mode 100644 index 0000000..c56c479 --- /dev/null +++ b/.drone.yml @@ -0,0 +1,17 @@ +kind: pipeline +type: docker +name: clone + +steps: + - name: Test + image: golang:1.18 + commands: + - go env -w GO111MODULE=on + - go env -w GOPROXY=https://goproxy.cn,direct + - go test -v ./... + - name: Benchmark + image: golang:1.18 + commands: + - go env -w GO111MODULE=on + - go env -w GOPROXY=https://goproxy.cn,direct + - go test -bench=. -benchmem \ No newline at end of file diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..442794a --- /dev/null +++ b/.gitignore @@ -0,0 +1,8 @@ +.env +.git +.svn +.idea +.vscode +*.log +gomod.sh +/vendor/ \ No newline at end of file diff --git a/go.mod b/go.mod new file mode 100644 index 0000000..1d0c370 --- /dev/null +++ b/go.mod @@ -0,0 +1,5 @@ +module go.dtapp.net/goenv + +go 1.18 + +require go.dtapp.net/gostring v1.0.3 diff --git a/go.sum b/go.sum new file mode 100644 index 0000000..5d8b1b3 --- /dev/null +++ b/go.sum @@ -0,0 +1,2 @@ +go.dtapp.net/gostring v1.0.3 h1:KSOq4D77/g5yZN/bqWfZ0kOOaPr/P1240vg03+XdENI= +go.dtapp.net/gostring v1.0.3/go.mod h1:+ggrOvgQDQturi1QGsXEpyRN/ZPoRDaqhMujIk5lrgQ= diff --git a/goenv.go b/goenv.go new file mode 100644 index 0000000..cca1347 --- /dev/null +++ b/goenv.go @@ -0,0 +1,39 @@ +package goenv + +import ( + "go.dtapp.net/gostring" + "os" + "strings" +) + +func GetEnvDefault(key, defVal string) string { + val, ok := os.LookupEnv(key) + if ok { + return val + } + return defVal +} + +func GetEnvDefaultInt(key string, defVal int) int { + val, ok := os.LookupEnv(key) + if ok { + return gostring.ToInt(val) + } + return defVal +} + +func GetEnvs(key string) string { + envs := os.Environ() + for _, e := range envs { + parts := strings.SplitN(e, "=", 2) + if len(parts) != 2 { + continue + } else { + println(parts[0], parts[1]) + if parts[0] == key { + return parts[1] + } + } + } + return "" +} diff --git a/goenv_test.go b/goenv_test.go new file mode 100644 index 0000000..6f599fa --- /dev/null +++ b/goenv_test.go @@ -0,0 +1,22 @@ +package goenv + +import "testing" + +func TestGetEnvDefault(t *testing.T) { + t.Log(GetEnvDefault("test1", "1")) +} +func TestGetEnvDefaultInt(t *testing.T) { + t.Log(GetEnvDefaultInt("test2", 2)) +} + +func BenchmarkGetEnvDefault(b *testing.B) { + for i := 0; i < b.N; i++ { + b.Log(GetEnvDefault("test1", "1")) + } +} + +func BenchmarkGetEnvDefaultInt(b *testing.B) { + for i := 0; i < b.N; i++ { + b.Log(GetEnvDefaultInt("test2", 2)) + } +} diff --git a/version.go b/version.go new file mode 100644 index 0000000..628cec4 --- /dev/null +++ b/version.go @@ -0,0 +1,3 @@ +package goenv + +const Version = "1.0.0" diff --git a/version_test.go b/version_test.go new file mode 100644 index 0000000..bdf4f64 --- /dev/null +++ b/version_test.go @@ -0,0 +1,7 @@ +package goenv + +import "testing" + +func TestVersion(t *testing.T) { + t.Log(Version) +}