@@ -112,7 +112,7 @@ func (l Language) shouldConvertExamples() bool {
112
112
return false
113
113
}
114
114
115
- func aferoDirToBytesMap (fs afero.Fs , dir string ) (map [string ][]byte , error ) {
115
+ func dirToBytesMap (fs afero.Fs , dir string ) (map [string ][]byte , error ) {
116
116
result := make (map [string ][]byte )
117
117
err := afero .Walk (fs , dir , func (path string , info os.FileInfo , err error ) error {
118
118
if err != nil {
@@ -138,6 +138,27 @@ func aferoDirToBytesMap(fs afero.Fs, dir string) (map[string][]byte, error) {
138
138
return result , err
139
139
}
140
140
141
+ func writeBytesMapToDir (fs afero.Fs , dir string , files map [string ][]byte ) error {
142
+ err := fs .MkdirAll (dir , 0o755 )
143
+ if err != nil {
144
+ return pkgerrors .Wrap (err , "failed to create dir" )
145
+ }
146
+ for name , content := range files {
147
+ srcDir := filepath .Dir (name )
148
+ if srcDir != "." {
149
+ err = fs .MkdirAll (filepath .Join (dir , srcDir ), 0o755 )
150
+ if err != nil {
151
+ return pkgerrors .Wrap (err , "failed to create dir" )
152
+ }
153
+ }
154
+ err := afero .WriteFile (fs , filepath .Join (dir , name ), content , 0o600 )
155
+ if err != nil {
156
+ return pkgerrors .Wrap (err , "failed to write file" )
157
+ }
158
+ }
159
+ return nil
160
+ }
161
+
141
162
func runPulumiPackageGenSDK (l Language , pkg * pschema.Package , extraFiles map [string ][]byte ) (map [string ][]byte , error ) {
142
163
var err error
143
164
@@ -155,7 +176,6 @@ func runPulumiPackageGenSDK(l Language, pkg *pschema.Package, extraFiles map[str
155
176
156
177
args := []string {"package" , "gen-sdk" , "--language" , string (l ), "--out" , outDir }
157
178
158
- // turn extraFiles into a folder with files
159
179
if len (extraFiles ) > 0 {
160
180
overlayDir , err := afero .TempDir (fs , "" , "pulumi-package-gen-sdk-overlays" )
161
181
if err != nil {
@@ -168,28 +188,14 @@ func runPulumiPackageGenSDK(l Language, pkg *pschema.Package, extraFiles map[str
168
188
}
169
189
}()
170
190
dest := filepath .Join (overlayDir , string (l ))
171
- err = fs . MkdirAll ( dest , 0o755 )
191
+ err = writeBytesMapToDir ( fs , dest , extraFiles )
172
192
if err != nil {
173
- return nil , pkgerrors .Wrap (err , "failed to create temp dir" )
174
- }
175
- for name , content := range extraFiles {
176
- dir := filepath .Dir (name )
177
- if dir != "." {
178
- err = fs .MkdirAll (filepath .Join (dest , dir ), 0o755 )
179
- if err != nil {
180
- return nil , pkgerrors .Wrap (err , "failed to create temp dir" )
181
- }
182
- }
183
- err := afero .WriteFile (fs , filepath .Join (dest , name ), content , 0o600 )
184
- if err != nil {
185
- return nil , pkgerrors .Wrap (err , "failed to write file" )
186
- }
193
+ return nil , pkgerrors .Wrap (err , "failed to write overlay files" )
187
194
}
188
195
189
196
args = append (args , "--overlays" , overlayDir )
190
197
}
191
198
192
- // write the schema to a file
193
199
schemaDir , err := afero .TempDir (fs , "" , "schema" )
194
200
if err != nil {
195
201
return nil , pkgerrors .Wrap (err , "failed to create temp dir" )
@@ -216,7 +222,7 @@ func runPulumiPackageGenSDK(l Language, pkg *pschema.Package, extraFiles map[str
216
222
return nil , pkgerrors .New (string (out ) + "\n " + stderr + "\n " + err .Error ())
217
223
}
218
224
219
- return aferoDirToBytesMap (fs , outDir )
225
+ return dirToBytesMap (fs , outDir )
220
226
}
221
227
222
228
func (l Language ) emitSDK (pkg * pschema.Package , info tfbridge.ProviderInfo , root afero.Fs ,
0 commit comments