@@ -79,10 +79,12 @@ func main() {
79
79
log .Fatal (fmt .Errorf ("[error] failed to parse a file: %w" , err ))
80
80
}
81
81
82
- alreadyOpenedWithTruncFilesSet := map [string ]bool {}
83
-
84
- fileHeaderGenerated := false
85
- for _ , typeName := range typeNames {
82
+ var (
83
+ alreadyOpenedWithTruncFilesSet = map [string ]bool {}
84
+ fileHeaderGenerated = false
85
+ rootStmt = g .NewRoot ()
86
+ )
87
+ for i , typeName := range typeNames {
86
88
fields , err := constructor .CollectConstructorFieldsFromAST (typeName , astFiles )
87
89
if err != nil {
88
90
log .Fatal (fmt .Errorf ("[error] failed to collect fields from files: %w" , err ))
@@ -96,8 +98,6 @@ func main() {
96
98
}
97
99
}
98
100
99
- rootStmt := g .NewRoot ()
100
-
101
101
if ! fileHeaderGenerated {
102
102
rootStmt = rootStmt .AddStatements (
103
103
g .NewComment (fmt .Sprintf (" Code generated by gonstructor %s; DO NOT EDIT." , strings .Join (os .Args [1 :], " " ))),
@@ -140,40 +140,43 @@ func main() {
140
140
if * withGetter {
141
141
rootStmt = rootStmt .AddStatements (internal .GenerateGetters (typeName , fields ))
142
142
}
143
-
144
- code , err := rootStmt .Goimports ().EnableSyntaxChecking ().Generate (0 )
145
- if err != nil {
146
- log .Fatal (fmt .Errorf ("[error] failed to generate code: %w" , err ))
143
+ if i != len (typeNames )- 1 {
144
+ rootStmt = rootStmt .AddStatements (g .NewNewline ())
147
145
}
146
+ }
148
147
149
- err = func () error {
150
- fileName := getFilenameToGenerate (typeName , * output , args )
148
+ code , err := rootStmt .Goimports ().EnableSyntaxChecking ().Generate (0 )
149
+ if err != nil {
150
+ log .Fatal (fmt .Errorf ("[error] failed to generate code: %w" , err ))
151
+ }
151
152
152
- fileOpenFlag := os .O_APPEND | os .O_WRONLY | os .O_CREATE
153
- if ! alreadyOpenedWithTruncFilesSet [fileName ] {
154
- // truncate and make a blank file
155
- fileOpenFlag = os .O_TRUNC | os .O_WRONLY | os .O_CREATE
156
- }
153
+ err = func () error {
154
+ fileName := getFilenameToGenerate (typeNames [0 ], * output , args )
157
155
158
- f , err := os .OpenFile (fileName , fileOpenFlag , 0644 )
159
- if err != nil {
160
- return fmt .Errorf ("[error] failed open a file to output the generated code: %w" , err )
161
- }
156
+ fileOpenFlag := os .O_APPEND | os .O_WRONLY | os .O_CREATE
157
+ if ! alreadyOpenedWithTruncFilesSet [fileName ] {
158
+ // truncate and make a blank file
159
+ fileOpenFlag = os .O_TRUNC | os .O_WRONLY | os .O_CREATE
160
+ }
162
161
163
- defer f .Close ()
162
+ f , err := os .OpenFile (fileName , fileOpenFlag , 0644 )
163
+ if err != nil {
164
+ return fmt .Errorf ("[error] failed open a file to output the generated code: %w" , err )
165
+ }
164
166
165
- alreadyOpenedWithTruncFilesSet [ fileName ] = true
167
+ defer f . Close ()
166
168
167
- _ , err = f .WriteString (code )
168
- if err != nil {
169
- return fmt .Errorf ("[error] failed output generated code to a file: %w" , err )
170
- }
169
+ alreadyOpenedWithTruncFilesSet [fileName ] = true
171
170
172
- return nil
173
- }()
171
+ _ , err = f .WriteString (code )
174
172
if err != nil {
175
- log . Fatal ( err )
173
+ return fmt . Errorf ( "[error] failed output generated code to a file: %w" , err )
176
174
}
175
+
176
+ return nil
177
+ }()
178
+ if err != nil {
179
+ log .Fatal (err )
177
180
}
178
181
}
179
182
0 commit comments