@@ -24,28 +24,42 @@ function Export-Pipescript {
2424 $filesToBuild =
2525 @ (if (-not $InputPath ) {
2626 Get-PipeScript - PipeScriptPath $pwd |
27- Where-Object PipeScriptType -In SourceGenerator, Template
27+ Where-Object PipeScriptType -In Template, BuildScript |
28+ Sort-Object PipeScriptType, Source
2829 } else {
2930 foreach ($inPath in $InputPath ) {
3031 Get-PipeScript - PipeScriptPath $inPath |
31- Where-Object PipeScriptType -In SourceGenerator, Template
32+ Where-Object PipeScriptType -In Template, BuildScript |
33+ Sort-Object PipeScriptType, Source
3234 }
3335 })
3436
3537 $buildStarted = [DateTime ]::Now
38+ $alreadyBuilt = [Ordered ]@ {}
3639 $filesToBuildCount , $filesToBuildTotal , $filesToBuildID = 0 , $filesToBuild.Length , $ (Get-Random )
3740 foreach ($buildFile in $filesToBuild ) {
38- $ThisBuildStartedAt = [DateTime ]::Now
41+
42+ $ThisBuildStartedAt = [DateTime ]::Now
43+
3944 Write-Progress " Building PipeScripts [$FilesToBuildCount / $filesToBuildTotal ]" " $ ( $buildFile.Source ) " - PercentComplete $ (
4045 $FilesToBuildCount ++
4146 $FilesToBuildCount * 100 / $filesToBuildTotal
4247 ) - id $filesToBuildID
4348
49+ if ($alreadyBuilt [$buildFile.Source ]) { continue }
50+
51+ $buildFileTemplate = $buildFile.Template
52+ if ($buildFileTemplate -and $buildFile.PipeScriptType -ne ' Template' ) {
53+ Invoke-PipeScript $buildFileTemplate.Source
54+ $alreadyBuilt [$buildFileTemplate.Source ] = $true
55+ }
56+
4457 $EventsFromThisBuild = Get-Event |
4558 Where-Object TimeGenerated -gt $ThisBuildStartedAt |
4659 Where-Object SourceIdentifier -Like ' PipeScript.*'
4760
4861 Invoke-PipeScript $buildFile.Source
62+ $alreadyBuilt [$buildFile.Source ] = $true
4963 }
5064
5165
0 commit comments