|
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