Skip to content

Commit 9db1980

Browse files
committed
fix: load env error
1 parent af067d1 commit 9db1980

File tree

2 files changed

+37
-32
lines changed

2 files changed

+37
-32
lines changed

env.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@ func Marshal(v interface{}, prefix string) ([]byte, error) {
2222
return yaml.Marshal(m)
2323
}
2424

25-
// UnmarshalFromEnv 从环境变量中赋值结构体
26-
func UnmarshalFromEnv(v interface{}, prefix string) (err error) {
25+
// LoadEnv 从环境变量中赋值结构体
26+
func LoadEnv(v interface{}, prefix string) (err error) {
2727

2828
// 获取所有 key
2929
m := make(map[string]interface{})
@@ -37,7 +37,7 @@ func UnmarshalFromEnv(v interface{}, prefix string) (err error) {
3737
m[key] = os.Getenv(key)
3838
}
3939

40-
return
40+
return unmarshal(v, prefix)
4141
}
4242

4343
func Output(data []byte, w io.Writer) error {

env_test.go

Lines changed: 34 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
11
package envutils
22

33
import (
4+
"log"
45
"os"
56
"testing"
67

7-
"log"
8-
98
"gopkg.in/yaml.v3"
109
)
1110

@@ -22,14 +21,19 @@ type addr struct {
2221
School string `env:"school"`
2322
}
2423

24+
var (
25+
_ = os.Setenv("APP__Stud01_Name", "zhugeliang")
26+
_ = os.Setenv("APP__Stud01_Age", "500")
27+
_ = os.Setenv("APP__Stud01_Gender", "true")
28+
_ = os.Setenv("APP__Stud01__addr_home", "addr: sichuan")
29+
_ = os.Setenv("APP__Stud01__addr2_home", "addr2: sichuan")
30+
_ = os.Setenv("APP__Addr_home", "zhongguo,sichuan,chengdu")
31+
_ = os.Setenv("APP__Addr_Home", "APP__Addr_Home")
32+
33+
APPNAME = "APP"
34+
)
35+
2536
func Test_marshal(t *testing.T) {
26-
os.Setenv("APP__Stud01_Name", "zhugeliang")
27-
os.Setenv("APP__Stud01_Age", "500")
28-
os.Setenv("APP__Stud01_Gender", "true")
29-
os.Setenv("APP__Stud01__addr_home", "addr: sichuan")
30-
os.Setenv("APP__Stud01__addr2_home", "addr2: sichuan")
31-
os.Setenv("APP__Addr_home", "zhongguo,sichuan,chengdu")
32-
os.Setenv("APP__Addr_Home", "APP__Addr_Home")
3337
stu := student{
3438
Name: "zhangsan2",
3539
Age: 20,
@@ -43,39 +47,40 @@ func Test_marshal(t *testing.T) {
4347
School: "chengdu",
4448
},
4549
}
46-
47-
// stu02 := student{}
48-
4950
config := &struct {
5051
Stud01 *student
51-
// Person student
52-
Addr addr
53-
// Stud02 *student
54-
// Address addr
52+
Addr addr
5553
}{
5654
Stud01: &stu,
57-
// Person: stu,
58-
Addr: addr{},
59-
// Stud02: &stu02,
55+
Addr: addr{},
6056
}
6157

62-
/* public */
63-
var b []byte
64-
var err error
65-
6658
/* marshal */
67-
b, _ = Marshal(config, "APP")
59+
b, _ := Marshal(config, "APP")
6860
_ = Output(b, os.Stdout)
6961

62+
}
63+
64+
func Test_LoadEnv(t *testing.T) {
65+
stu := student{}
66+
config := &struct {
67+
Stud01 *student
68+
Addr addr
69+
}{
70+
Stud01: &stu,
71+
Addr: addr{},
72+
}
73+
74+
LoadEnv(config, APPNAME)
7075
/* unmarshal */
71-
err = unmarshal(config, "APP")
72-
// fmt.Println(err)
76+
err := LoadEnv(config, APPNAME)
7377
if err != nil {
74-
log.Fatal(err.Error())
78+
log.Fatal(err)
7579
}
76-
b, err = yaml.Marshal(config)
80+
81+
b, err := yaml.Marshal(config)
7782
if err != nil {
78-
log.Fatal(err.Error())
83+
log.Fatal(err)
7984
}
8085
_ = Output(b, os.Stdout)
8186
}

0 commit comments

Comments
 (0)