@@ -18,6 +18,32 @@ function Export-Pipescript {
1818 $InputPath
1919 )
2020
21+ begin {
22+ function AutoRequiresSimple {
23+ param (
24+ [Management.Automation.CommandInfo ]
25+ $CommandInfo
26+ )
27+
28+ process {
29+ if (-not $CommandInfo.ScriptBlock ) { return }
30+ $simpleRequirements =
31+ foreach ($requiredModule in $CommandInfo.ScriptBlock.Ast.ScriptRequirements.RequiredModules ) {
32+ if ($requiredModule.Name -and
33+ (-not $requiredModule.MaximumVersion ) -and
34+ (-not $requiredModule.RequiredVersion )
35+ ) {
36+ $requiredModule.Name
37+ }
38+ }
39+
40+ if ($simpleRequirements ) {
41+ Invoke-PipeScript " require latest $ ( $simpleRequirements ) "
42+ }
43+ }
44+ }
45+ }
46+
2147 process {
2248 if ($env: GITHUB_WORKSPACE ) {
2349 " ::group::Discovering files" , " from: $InputPath " | Out-Host
@@ -53,8 +79,7 @@ function Export-Pipescript {
5379 [long ]$TotalOutputFileLength = 0
5480 foreach ($buildFile in $filesToBuild ) {
5581
56- $ThisBuildStartedAt = [DateTime ]::Now
57-
82+ $ThisBuildStartedAt = [DateTime ]::Now
5883 Write-Progress " Building PipeScripts [$FilesToBuildCount / $filesToBuildTotal ]" " $ ( $buildFile.Source ) " - PercentComplete $ (
5984 $FilesToBuildCount ++
6085 $FilesToBuildCount * 100 / $filesToBuildTotal
@@ -67,6 +92,7 @@ function Export-Pipescript {
6792
6893 $buildFileTemplate = $buildFile.Template
6994 if ($buildFileTemplate -and $buildFile.PipeScriptType -ne ' Template' ) {
95+ AutoRequiresSimple - CommandInfo $buildFileTemplate
7096 try {
7197 Invoke-PipeScript $buildFileTemplate.Source
7298 } catch {
@@ -85,7 +111,7 @@ function Export-Pipescript {
85111 $EventsFromThisBuild = Get-Event |
86112 Where-Object TimeGenerated -gt $ThisBuildStartedAt |
87113 Where-Object SourceIdentifier -Like ' *PipeScript*'
88-
114+ AutoRequiresSimple - CommandInfo $buildFile
89115 $FileBuildStarted = [datetime ]::now
90116 $buildOutput =
91117 try {
0 commit comments