forked from OpenRCT2/objects
-
Notifications
You must be signed in to change notification settings - Fork 0
/
package.ps1
66 lines (61 loc) · 2.05 KB
/
package.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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#!/bin/pwsh
$ErrorActionPreference = "Stop"
# Create zip archive containing objects
$useZip = $false
if (Get-Command "zip" -ErrorAction SilentlyContinue)
{
# Use zip if possible as it handles permissions better on unix
$useZip = $true
Write-Host "Using zip instead of Compress-Archive"
}
Write-Host -ForegroundColor Cyan "Re-creating artifacts directory..."
Remove-Item -Force -Recurse artifacts -ErrorAction SilentlyContinue
New-Item -Force -ItemType Directory artifacts,artifacts/objects | Out-Null
Write-Host -ForegroundColor Cyan "Copying objects..."
Push-Location objects
Copy-Item -Recurse "official","rct1","rct2","rct2ww","rct2tt" ../artifacts/objects
Pop-Location
Write-Host -ForegroundColor Cyan "Creating parkobj files..."
foreach ($d in Get-ChildItem -Directory -Recurse artifacts/objects)
{
if (Test-Path (Join-Path $d.FullName object.json))
{
$objName = $d.Name
$src = Resolve-Path -Relative $d.FullName
$dst = $src + ".parkobj"
Write-Host "$src -> $dst"
if ($useZip)
{
Push-Location $src
zip -r9 "../$objName.parkobj" (Get-ChildItem).Name
if ($LASTEXITCODE -ne 0)
{
throw "zip failed with $LASTEXITCODE"
}
Pop-Location
}
else
{
# We must use .zip extension for Compress-Archive to work
Compress-Archive -Force "$src/*" -DestinationPath ($dst + ".zip") -CompressionLevel Optimal
Move-Item ($dst + ".zip") $dst
}
Remove-Item -Force -Recurse $d.FullName
}
}
Write-Host -ForegroundColor Cyan "Creating final archive..."
if ($useZip)
{
Push-Location "artifacts/objects"
zip -r9 "../objects.zip" (Get-ChildItem).Name
if ($LASTEXITCODE -ne 0)
{
throw "zip failed with $LASTEXITCODE"
}
Pop-Location
}
else
{
Compress-Archive -Force "artifacts/objects/*" -DestinationPath "artifacts/objects.zip" -CompressionLevel Optimal
}
Remove-Item -Force -Recurse artifacts/objects