-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathbuild.ps1
41 lines (33 loc) · 1.44 KB
/
build.ps1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# Vars
$pluginName = "TrackCrafts"
$projectFolder = "$PSScriptRoot"
$msBuildLocation = "C:\Program Files\Microsoft Visual Studio\2022\Community\Msbuild\Current\Bin\MSBuild.exe"
$7zLocation = "C:\Users\arman\scoop\apps\7zip\current\7z.exe"
$dllName = "$pluginName.dll"
$outputDir = "$PSScriptRoot/build"
$zipFolder = "$PSScriptRoot/zip"
# Start
Push-Location $PSScriptRoot
# Compile
Push-Location $projectFolder
&$msBuildLocation /m /p:Configuration=Release /t:Rebuild /p:OutDir="$outputDir"
Pop-Location
# Update manifest version
$pluginVersion = (Get-Item "$outputDir/$dllName").VersionInfo.ProductVersion
$manifest = Get-Content "$PSScriptRoot/manifest.json" | ConvertFrom-Json
$manifest.version_number = $pluginVersion
$manifest | ConvertTo-Json | Set-Content "$PSScriptRoot/manifest.json"
# Make zip folder
New-Item $zipFolder -ItemType Directory -Force
Copy-Item -Path "$outputDir/$dllName" -Destination "$zipFolder/$dllName" -Force
Copy-Item -Path "$PSScriptRoot/icon.png" -Destination "$zipFolder/" -Force
Copy-Item -Path "$PSScriptRoot/manifest.json" -Destination "$zipFolder/" -Force
Copy-Item -Path "$PSScriptRoot/README.md" -Destination "$zipFolder/" -Force
# Create zip file
$zipLocation = "$PSScriptRoot/$($pluginName)_$pluginVersion.zip"
Remove-Item -Path "$zipLocation*" -Force -Recurse
& $7zLocation a $zipLocation "$zipFolder/*"
# Cleanup
Remove-Item -Path "$outputDir" -Force -Recurse
Remove-Item -Path "$zipFolder" -Force -Recurse
Pop-Location