forge/dev-arma.ps1
Jacob Schmidt ebfe77a340 feat: implement complete Forge framework with Rust/Redis backend and Arma 3 integration
Implemented features:
- High-performance Rust extension with Redis persistence
- Actor/player management with loadout, position, and state tracking
- Banking system with deposit, withdraw, and transfer operations
- Physical and virtual garage/locker systems for vehicle and equipment storage
- Organization management with member tracking and permissions
- Client-side UI with React-like state management
- Server-side event-driven architecture with CBA Events
- Security: Self-transfer prevention at multiple layers
- Logging system with per-module log files
- ICOM module for inter-server communication

Co-Authored-By: Warp <agent@warp.dev>
2026-01-04 12:52:15 -06:00

70 lines
1.7 KiB
PowerShell

#!/usr/bin/env pwsh
<#
.SYNOPSIS
Build both arma/client and arma/server using hemtt
.DESCRIPTION
This script runs hemtt dev for both the client and server Arma mods.
It changes to each directory and runs the build command.
.PARAMETER Target
Specify which target to build: 'client', 'server', or 'both' (default)
.EXAMPLE
.\build-arma.ps1
Builds both client and server
.EXAMPLE
.\build-arma.ps1 -Target client
Builds only the client
#>
param(
[Parameter(Mandatory=$false)]
[ValidateSet('client', 'server', 'both')]
[string]$Target = 'both'
)
$ErrorActionPreference = "Stop"
$scriptDir = $PSScriptRoot
function Build-HemttProject {
param(
[string]$ProjectPath,
[string]$ProjectName
)
Write-Host "`n=== Building $ProjectName ===" -ForegroundColor Cyan
Push-Location $ProjectPath
try {
& hemtt utils fnl && hemtt dev
if ($LASTEXITCODE -ne 0) {
throw "hemtt dev failed for $ProjectName with exit code $LASTEXITCODE"
}
Write-Host "$ProjectName build successful" -ForegroundColor Green
}
finally {
Pop-Location
}
}
$clientPath = Join-Path $scriptDir "arma\client"
$serverPath = Join-Path $scriptDir "arma\server"
try {
if ($Target -eq 'client' -or $Target -eq 'both') {
Build-HemttProject -ProjectPath $clientPath -ProjectName "Client"
}
if ($Target -eq 'server' -or $Target -eq 'both') {
Build-HemttProject -ProjectPath $serverPath -ProjectName "Server"
}
Write-Host "`n=== Build Complete ===" -ForegroundColor Green
}
catch {
Write-Host "`n✗ Build failed: $_" -ForegroundColor Red
exit 1
}