Skip to content

Commit fd665a9

Browse files
author
Kapil Borle
committed
Add module creation related tasks
1 parent e8a029a commit fd665a9

File tree

1 file changed

+48
-9
lines changed

1 file changed

+48
-9
lines changed

.build.ps1

Lines changed: 48 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ $resourceScript = Join-Path $BuildRoot "New-StronglyTypedCsFileForResx.ps1"
1111
function Get-BuildInputs($project) {
1212
pushd $buildRoot/$project
1313
gci -Filter *.cs
14-
gci -Directory -Exclude obj,bin | gci -Filter *.cs -Recurse
14+
gci -Directory -Exclude obj, bin | gci -Filter *.cs -Recurse
1515
popd
1616
}
1717

@@ -28,7 +28,7 @@ function Get-BuildOutputs($project) {
2828

2929
function Get-BuildTaskParams($project) {
3030
$taskParams = @{
31-
Jobs = {dotnet build --framework $Framework --configuration $Configuration}
31+
Jobs = {dotnet build --framework $Framework --configuration $Configuration}
3232
}
3333

3434
$outputs = (Get-BuildOutputs $project)
@@ -43,9 +43,9 @@ function Get-BuildTaskParams($project) {
4343

4444
function Get-RestoreTaskParams($project) {
4545
@{
46-
Inputs = "$BuildRoot/$project/project.json"
46+
Inputs = "$BuildRoot/$project/project.json"
4747
Outputs = "$BuildRoot/$project/project.lock.json"
48-
Jobs = {dotnet restore}
48+
Jobs = {dotnet restore}
4949
}
5050
}
5151

@@ -73,15 +73,15 @@ function Get-TestTaskParam($project) {
7373

7474
function Get-ResourceTaskParam($project) {
7575
@{
76-
Inputs = "$project/Strings.resx"
76+
Inputs = "$project/Strings.resx"
7777
Outputs = "$project/Strings.cs"
78-
Jobs = {& "$resourceScript $project"}
79-
Before = "$project/build"
78+
Jobs = {& "$resourceScript $project"}
79+
Before = "$project/build"
8080
}
8181
}
8282

8383
function Add-ProjectTask([string]$project, [string]$taskName, [hashtable]$taskParams, [string]$pathPrefix = $buildRoot) {
84-
$jobs = [scriptblock]::Create(@"
84+
$jobs = [scriptblock]::Create(@"
8585
pushd $pathPrefix/$project
8686
$($taskParams.Jobs)
8787
popd
@@ -108,6 +108,45 @@ task clean "engine/clean", "rules/clean"
108108
$projects | % {Add-ProjectTask $_ test (Get-TestTaskParam $_) "$BuildRoot/tests"}
109109
task test "engine/test", "rules/test"
110110

111-
task createModule {
111+
task makeModule {
112+
$solutionDir = $BuildRoot
113+
$itemsToCopyBinaries = @("$solutionDir\Engine\bin\$Configuration\$Framework\Microsoft.Windows.PowerShell.ScriptAnalyzer.dll",
114+
"$solutionDir\Rules\bin\$Configuration\$Framework\Microsoft.Windows.PowerShell.ScriptAnalyzer.BuiltinRules.dll")
115+
116+
$itemsToCopyCommon = @("$solutionDir\Engine\PSScriptAnalyzer.psd1",
117+
"$solutionDir\Engine\PSScriptAnalyzer.psm1",
118+
"$solutionDir\Engine\ScriptAnalyzer.format.ps1xml",
119+
"$solutionDir\Engine\ScriptAnalyzer.types.ps1xml")
120+
121+
$destinationDir = "$solutionDir\out\PSScriptAnalyzer"
122+
$destinationDirBinaries = $destinationDir
123+
if ($Framework -eq "netstandard1.6") {
124+
$destinationDirBinaries = "$destinationDir\coreclr"
125+
} elseif ($Configuration -match 'PSv3') {
126+
$destinationDirBinaries = "$destinationDir\PSv3"
127+
}
128+
129+
Function CopyToDestinationDir($itemsToCopy, $destination) {
130+
if (-not (Test-Path $destination)) {
131+
New-Item -ItemType Directory $destination -Force
132+
}
133+
foreach ($file in $itemsToCopy) {
134+
Copy-Item -Path $file -Destination (Join-Path $destination (Split-Path $file -Leaf)) -Force
135+
}
136+
}
137+
138+
CopyToDestinationDir $itemsToCopyCommon $destinationDir
139+
CopyToDestinationDir $itemsToCopyBinaries $destinationDirBinaries
140+
141+
# Copy Settings File
142+
Copy-Item -Path "$solutionDir\Engine\Settings" -Destination $destinationDir -Force -Recurse
143+
144+
# copy newtonsoft dll if net451 framework
145+
if ($Framework -eq "net451") {
146+
copy-item -path "$solutionDir\Rules\bin\$Configuration\$Framework\Newtonsoft.Json.dll" -Destination $destinationDirBinaries
147+
}
148+
}
112149

150+
task cleanModule {
151+
Remove-Item -Path out/ -Recurse -Force
113152
}

0 commit comments

Comments
 (0)