@@ -36,9 +36,10 @@ type EnvField struct {
36
36
}
37
37
38
38
const (
39
- envFieldTypeTag = "env"
40
- envDefaultFieldTypeTag = "envDefault"
41
- MARKDOWN_FILENAME = "env_gen.md"
39
+ envFieldTypeTag = "env"
40
+ envDefaultFieldTypeTag = "envDefault"
41
+ envDescriptionFieldTypeTag = "envDescription"
42
+ MARKDOWN_FILENAME = "env_gen.md"
42
43
)
43
44
44
45
const MarkdownTemplate = `
@@ -97,14 +98,15 @@ func convertTagToStructTag(tag string) reflect.StructTag {
97
98
return reflect .StructTag (strings .Split (tag , "`" )[1 ])
98
99
}
99
100
100
- func getEnvKeyAndValue (tag reflect.StructTag ) (string , string ) {
101
+ func getEnvKeyAndValue (tag reflect.StructTag ) (string , string , string ) {
101
102
envKey := tag .Get (envFieldTypeTag )
102
103
envValue := tag .Get (envDefaultFieldTypeTag )
104
+ envDescription := tag .Get (envDescriptionFieldTypeTag )
103
105
// check if there exist any value provided in env for this field
104
106
if value , ok := os .LookupEnv (envKey ); ok {
105
107
envValue = value
106
108
}
107
- return envKey , envValue
109
+ return envKey , envValue , envDescription
108
110
}
109
111
110
112
func processGoFile (filePath string , allFields * []EnvField , uniqueKeys * map [string ]bool ) error {
@@ -122,13 +124,14 @@ func processGoFile(filePath string, allFields *[]EnvField, uniqueKeys *map[strin
122
124
for _ , field := range structType .Fields .List {
123
125
if field .Tag != nil {
124
126
strippedTags := convertTagToStructTag (field .Tag .Value )
125
- envKey , envValue := getEnvKeyAndValue (strippedTags )
127
+ envKey , envValue , envDescription := getEnvKeyAndValue (strippedTags )
126
128
if len (envKey ) == 0 || (* uniqueKeys )[envKey ] {
127
129
continue
128
130
}
129
131
* allFields = append (* allFields , EnvField {
130
- Env : envKey ,
131
- EnvValue : envValue ,
132
+ Env : envKey ,
133
+ EnvValue : envValue ,
134
+ EnvDescription : envDescription ,
132
135
})
133
136
(* uniqueKeys )[envKey ] = true
134
137
}
0 commit comments