Skip to content

Commit 03b674b

Browse files
author
James Brundage
committed
Adding Build-PipeScript (#30)
1 parent d92695b commit 03b674b

File tree

1 file changed

+52
-0
lines changed

1 file changed

+52
-0
lines changed

Build-PipeScript.ps1

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
function Build-Pipescript {
2+
<#
3+
.Synopsis
4+
Builds PipeScript Files
5+
.Description
6+
Builds PipeScript Files.
7+
8+
Any Source Generator Files Discovered by PipeScript will be run, which will convert them into source code.
9+
#>
10+
[Alias('bps')]
11+
param(
12+
# One or more input paths. If no -InputPath is provided, will build all scripts beneath the current directory.
13+
[Parameter(ValueFromPipelineByPropertyName)]
14+
[Alias('FullName')]
15+
[string[]]
16+
$InputPath
17+
)
18+
19+
process {
20+
$filesToBuild =
21+
@(if (-not $InputPath) {
22+
Get-PipeScript -PipeScriptPath $pwd |
23+
Where-Object PipeScriptType -In SourceGenerator
24+
} else {
25+
foreach ($inPath in $InputPath) {
26+
Get-PipeScript -PipeScriptPath $inPath |
27+
Where-Object PipeScriptType -In SourceGenerator
28+
}
29+
})
30+
31+
32+
$buildStarted = [DateTime]::Now
33+
$filesToBuildCount, $filesToBuildTotal, $filesToBuildID = 0, $filesToBuild.Length, $(Get-Random)
34+
foreach ($buildFile in $filesToBuild) {
35+
$ThisBuildStartedAt = [DateTime]::Now
36+
Write-Progress "Building PipeScripts [$FilesToBuildCount / $filesToBuildTotal]" "$($buildFile.Source) " -PercentComplete $(
37+
$FilesToBuildCount++
38+
$FilesToBuildCount * 100 / $filesToBuildTotal
39+
) -id $filesToBuildID
40+
41+
$EventsFromThisBuild = Get-Event |
42+
Where-Object TimeGenerated -gt $ThisBuildStartedAt |
43+
Where-Object SourceIdentifier -Like 'PipeScript.*'
44+
45+
Invoke-PipeScript $buildFile.Source
46+
}
47+
48+
49+
$BuildTime = [DateTime]::Now - $buildStarted
50+
Write-Progress "Building PipeScripts [$FilesToBuildCount / $filesToBuildTotal]" "Finished In $($BuildTime) " -Completed -id $filesToBuildID
51+
}
52+
}

0 commit comments

Comments
 (0)