Files
ViewpointTurrets/Sign.ps1
T
2026-10-27 17:16:21 -04:00

31 lines
1.8 KiB
PowerShell

param(
[string]$KeyDirectory = (Join-Path $env:USERPROFILE '.zombie_buddy\signing\Riggs0'),
[string]$SteamID64 = '76561198079674652',
[switch]$Initialize
)
$ErrorActionPreference='Stop'
$signer=Join-Path $PSScriptRoot 'tools\SignZBS.java'
if($Initialize) {
if(Test-Path -LiteralPath (Join-Path $KeyDirectory 'author.properties')) {throw 'Signing identity already configured.'}
New-Item -ItemType Directory -Force -Path $KeyDirectory | Out-Null
$identity=[Security.Principal.WindowsIdentity]::GetCurrent().User
$acl=[Security.AccessControl.DirectorySecurity]::new()
$acl.SetOwner($identity)
$acl.SetAccessRuleProtection($true,$false)
$inherit=[Security.AccessControl.InheritanceFlags]'ContainerInherit,ObjectInherit'
$propagate=[Security.AccessControl.PropagationFlags]::None
$allow=[Security.AccessControl.AccessControlType]::Allow
$acl.AddAccessRule([Security.AccessControl.FileSystemAccessRule]::new($identity,'FullControl',$inherit,$propagate,$allow))
$system=[Security.Principal.SecurityIdentifier]::new('S-1-5-18')
$acl.AddAccessRule([Security.AccessControl.FileSystemAccessRule]::new($system,'FullControl',$inherit,$propagate,$allow))
Set-Acl -LiteralPath $KeyDirectory -AclObject $acl
& java $signer init $KeyDirectory $SteamID64
if($LASTEXITCODE -ne 0) {throw 'Signing identity initialization failed.'}
}
$info=Get-Content -LiteralPath (Join-Path $PSScriptRoot 'common\mod.info')
$jarEntry=($info | Where-Object {$_ -match '^javaJarFile='}) -replace '^javaJarFile=',''
$jar=Join-Path $PSScriptRoot ('42.20\'+$jarEntry)
& java $signer sign $KeyDirectory $jar
if($LASTEXITCODE -ne 0) {throw 'JAR signing failed.'}
Copy-Item -LiteralPath (Join-Path $KeyDirectory 'public-profile-key.txt') -Destination (Join-Path $PSScriptRoot 'ZombieBuddy-public-key.txt') -Force