|
222 | 222 | }
|
223 | 223 | }
|
224 | 224 | #endregion Scripts
|
225 |
| - |
| 225 | + $createdTemplateItems=@() |
226 | 226 | switch ($templateData.Type.ToString()) {
|
227 | 227 | #region File
|
228 | 228 | "File" {
|
229 | 229 | foreach ($child in $templateData.Children) {
|
230 |
| - $createdTemplateItems = New-TemplateItem -Item $child -Path $OutPath -Encoding $Encoding -ParameterFlat $Parameters -ParameterScript $scriptParameters -Raw $Raw |
231 |
| - Write-PSFMessage "`$createdTemplateItems=$($createdTemplateItems|convertto-json)" |
232 |
| - #Todo: Parameter umstellen |
233 |
| - Write-TemplateResults -TemplateResult $createdTemplateItems -Encoding $Encoding |
| 230 | + $createdTemplateItems += New-TemplateItem -Item $child -Path $OutPath -ParameterFlat $Parameters -ParameterScript $scriptParameters -Raw $Raw |
| 231 | + # Write-PSFMessage "`$createdTemplateItems=$($createdTemplateItems|convertto-json)" |
| 232 | + # Write-TemplateResults -TemplateResult $createdTemplateItems -Encoding $Encoding |
234 | 233 | }
|
235 | 234 | if ($Raw -and $templateData.Scripts.Values) {
|
236 | 235 | $templateData.Scripts.Values | Export-Clixml -Path (Join-Path $OutPath "_PSMD_ParameterScripts.xml")
|
|
258 | 257 | #endregion Resolve output folder
|
259 | 258 |
|
260 | 259 | foreach ($child in $templateData.Children) {
|
261 |
| - $createdTemplateItems = New-TemplateItem -Item $child -Path $newFolder.FullName -Encoding $Encoding -ParameterFlat $Parameters -ParameterScript $scriptParameters -Raw $Raw |
262 |
| - Write-PSFMessage "`$createdTemplateItems=$($createdTemplateItems|convertto-json)" |
263 |
| - #Todo: Parameter umstellen |
264 |
| - Write-TemplateResults -TemplateResult $createdTemplateItems -Encoding $Encoding |
| 260 | + $createdTemplateItems += New-TemplateItem -Item $child -Path $newFolder.FullName -ParameterFlat $Parameters -ParameterScript $scriptParameters -Raw $Raw |
| 261 | + # Write-PSFMessage "`$createdTemplateItems=$($createdTemplateItems|convertto-json)" |
| 262 | + # Write-TemplateResults -TemplateResult $createdTemplateItems -Encoding $Encoding |
265 | 263 | }
|
266 | 264 |
|
267 | 265 | #region Write Config File (Raw)
|
|
293 | 291 | }
|
294 | 292 |
|
295 | 293 | $configFile = Join-Path $newFolder.FullName "PSMDTemplate.ps1"
|
296 |
| - Set-Content -Path $configFile -Value $optionsTemplate -Encoding ([PSFEncoding]'utf-8').Encoding |
| 294 | + $createdTemplateItems += [TemplateResult]@{ |
| 295 | + Filename = "PSMDTemplate.ps1" |
| 296 | + Path = $newFolder.FullName |
| 297 | + FullPath = (Join-Path $newFolder.FullName "PSMDTemplate.ps1") |
| 298 | + Content = $optionsTemplate |
| 299 | + } |
| 300 | + # Set-Content -Path $configFile -Value $optionsTemplate -Encoding ([PSFEncoding]'utf-8').Encoding |
297 | 301 | }
|
298 | 302 | #endregion Write Config File (Raw)
|
299 | 303 | }
|
300 | 304 | #endregion Project
|
301 | 305 | }
|
| 306 | + If($GenerateObjects){ |
| 307 | + return $createdTemplateItems |
| 308 | + } |
| 309 | + Write-TemplateResults -TemplateResult $createdTemplateItems -Encoding $Encoding |
302 | 310 | }
|
303 | 311 |
|
304 | 312 | function New-TemplateItem {
|
|
311 | 319 | [string]
|
312 | 320 | $Path,
|
313 | 321 |
|
314 |
| - [PSFEncoding] |
315 |
| - $Encoding, |
316 |
| - |
317 | 322 | [hashtable]
|
318 | 323 | $ParameterFlat,
|
319 | 324 |
|
|
382 | 387 | $folderName = $folderName -replace "$($identifier)!$([regex]::Escape($param))!$($identifier)", $ParameterScript[$param]
|
383 | 388 | }
|
384 | 389 | }
|
385 |
| - $folder = Join-Path -Path (get-item $Path).FullName -ChildPath $folderName |
| 390 | + $folder = Join-Path -Path $Path -ChildPath $folderName |
386 | 391 | # $folder = New-Item -Path $Path -Name $folderName -ItemType Directory
|
387 | 392 | $createdTemplateItems = @()
|
388 | 393 | foreach ($child in $Item.Children) {
|
389 |
| - $createdTemplateItems += New-TemplateItem -Item $child -Path $folder -Encoding $Encoding -ParameterFlat $ParameterFlat -ParameterScript $ParameterScript -Raw $Raw |
| 394 | + $createdTemplateItems += New-TemplateItem -Item $child -Path $folder -ParameterFlat $ParameterFlat -ParameterScript $ParameterScript -Raw $Raw |
390 | 395 | }
|
391 | 396 | return $createdTemplateItems
|
392 | 397 | }
|
|
404 | 409 | )
|
405 | 410 | foreach ($item in $TemplateResult) {
|
406 | 411 | Write-PSFMessage -Level Verbose -Message "Creating file: $($Item.FullPath)" -FunctionName Invoke-PSMDTemplate -ModuleName PSModuleDevelopment -Tag 'create', 'template'
|
407 |
| - Write-PSFMessage -Level Verbose -Message "Creating file: $($Item |convertto-json)" -FunctionName Invoke-PSMDTemplate -ModuleName PSModuleDevelopment -Tag 'create', 'template' |
| 412 | + # Write-PSFMessage -Level Verbose -Message "Creating file: $($Item |convertto-json)" -FunctionName Invoke-PSMDTemplate -ModuleName PSModuleDevelopment -Tag 'create', 'template' |
408 | 413 | if (-not (Test-Path $Item.Path)) {
|
409 | 414 | Write-PSFMessage -Level Verbose -Message "Creating Folder $($Item.Path)"
|
410 |
| - New-Item -Path $Item.Path -ItemType Directory |
| 415 | + $folder=New-Item -Path $Item.Path -ItemType Directory |
411 | 416 | }
|
412 | 417 | if ($Item.IsText) {
|
413 | 418 | Write-PSFMessage -Level Verbose -Message "Creating as a Text-File"
|
|
418 | 423 | [System.IO.File]::WriteAllBytes($Item.FullPath, $Item.Content)
|
419 | 424 | }
|
420 | 425 | }
|
421 |
| - |
422 |
| - # $identifier = $Item.Identifier |
423 |
| - # $isFile = $Item.GetType().Name -eq 'TemplateItemFile' |
424 |
| - |
425 |
| - # #region File |
426 |
| - # if ($isFile) { |
427 |
| - # $fileName = $Item.Name |
428 |
| - # if (-not $Raw) { |
429 |
| - # foreach ($param in $Item.FileSystemParameterFlat) { |
430 |
| - # $fileName = [PSModuleDevelopment.Utility.UtilityHost]::Replace($fileName, "$($identifier)$($param)$($identifier)", $ParameterFlat[$param], $false) |
431 |
| - # } |
432 |
| - # foreach ($param in $Item.FileSystemParameterScript) { |
433 |
| - # $fileName = [PSModuleDevelopment.Utility.UtilityHost]::Replace($fileName, "$($identifier)$($param)$($identifier)", $ParameterScript[$param], $false) |
434 |
| - # } |
435 |
| - # } |
436 |
| - # $destPath = Join-Path $Path $fileName |
437 |
| - |
438 |
| - # if ($Item.PlainText) { |
439 |
| - # $text = $Item.Value |
440 |
| - # if (-not $Raw) { |
441 |
| - # foreach ($param in $Item.ContentParameterFlat) { |
442 |
| - # $text = [PSModuleDevelopment.Utility.UtilityHost]::Replace($text, "$($identifier)$($param)$($identifier)", $ParameterFlat[$param], $false) |
443 |
| - # } |
444 |
| - # foreach ($param in $Item.ContentParameterScript) { |
445 |
| - # $text = [PSModuleDevelopment.Utility.UtilityHost]::Replace($text, "$($identifier)!$($param)!$($identifier)", $ParameterScript[$param], $false) |
446 |
| - # } |
447 |
| - # } |
448 |
| - # [System.IO.File]::WriteAllText($destPath, $text, $Encoding) |
449 |
| - # } |
450 |
| - # else { |
451 |
| - # $bytes = [System.Convert]::FromBase64String($Item.Value) |
452 |
| - # [System.IO.File]::WriteAllBytes($destPath, $bytes) |
453 |
| - # } |
454 |
| - # } |
455 |
| - # #endregion File |
456 |
| - |
457 |
| - # #region Folder |
458 |
| - # else { |
459 |
| - # $folderName = $Item.Name |
460 |
| - # if (-not $Raw) { |
461 |
| - # foreach ($param in $Item.FileSystemParameterFlat) { |
462 |
| - # $folderName = $folderName -replace "$($identifier)$([regex]::Escape($param))$($identifier)", $ParameterFlat[$param] |
463 |
| - # } |
464 |
| - # foreach ($param in $Item.FileSystemParameterScript) { |
465 |
| - # $folderName = $folderName -replace "$($identifier)!$([regex]::Escape($param))!$($identifier)", $ParameterScript[$param] |
466 |
| - # } |
467 |
| - # } |
468 |
| - # $folder = New-Item -Path $Path -Name $folderName -ItemType Directory |
469 |
| - |
470 |
| - # foreach ($child in $Item.Children) { |
471 |
| - # Write-TemplateResults -Item $child -Path $folder.FullName -Encoding $Encoding -ParameterFlat $ParameterFlat -ParameterScript $ParameterScript -Raw $Raw |
472 |
| - # } |
473 |
| - # } |
474 |
| - # #endregion Folder |
475 | 426 | }
|
476 | 427 | #endregion Helper function
|
477 | 428 | }
|
|
0 commit comments