Files
moonwell-client/sync-dbc.ps1
T
2026-08-19 16:59:32 +04:00

64 lines
1.7 KiB
PowerShell

# Sync DBC files from src with files on a server
# Parse .env
if (Test-Path ".env") {
Get-Content ".env" | ForEach-Object {
if ($_ -match '^[^#\s]+=.+') {
$name, $value = $_ -split '=', 2
$name = $name.Trim()
$value = $value.Trim().Trim('"').Trim("'")
[System.Environment]::SetEnvironmentVariable($name, $value)
}
}
} else {
Write-Error ".env not found!"
exit 1
}
$user = $env:SSH_USER
$sshHost = $env:SSH_HOST
$port = $env:SSH_PORT
if (-not $user -or -not $sshHost) {
Write-Error "SSH_USER or SSH_HOST env variables are not defined"
exit 1
}
if (-not $port) {
$port = "22"
}
$input = @(
".\src\Data\ruRU\patch-ruRU-5\DBFilesClient\Achievement.dbc",
".\src\Data\ruRU\patch-ruRU-Z\DBFilesClient\Spell.dbc",
".\src\Data\ruRU\patch-ruRU-Z\DBFilesClient\BarberShopStyle.dbc",
".\src\Data\ruRU\patch-ruRU-Z\DBFilesClient\CreatureDisplayInfoExtra.dbc",
".\src\Data\ruRU\patch-ruRU-Z\DBFilesClient\SpellVisualKitModelAttach.dbc"
)
$output = "/home/mangos/moonwell-server/env/dist/data/dbc"
foreach ($file in $input) {
if (Test-Path $file) {
$fileName = Split-Path $file -Leaf
$outputPath = "$output/$fileName"
Write-Host "Copying $fileName to $output..."
scp -P $port $file "${user}@${sshHost}:${output}"
if ($LASTEXITCODE -eq 0) {
Write-Host "Running chmod..."
ssh -p $port "${user}@${sshHost}" "chown mangos:mangos '$outputPath' && chmod 775 '$outputPath'"
}
} else {
Write-Warning "Input file not found: $file"
}
}
Write-Host "Restarting server..."
ssh -p $port "${user}@${sshHost}" "cd /home/mangos/moonwell-server && docker compose restart ac-worldserver"
Write-Host "Done."