atualizacao scripts

This commit is contained in:
2026-03-20 15:51:38 -03:00
parent 0e445156a0
commit 6305ad5acf
2 changed files with 86 additions and 30 deletions

View File

@@ -134,6 +134,14 @@ function Install-Pilot {
} else { } else {
Write-Log "Could not retrieve MAC address.`n" Write-Log "Could not retrieve MAC address.`n"
} }
Write-Log "`nSetting main connectio as PRIVATE..."
Get-NetConnectionProfile | Where-Object {$_.InterfaceAlias -like "*Ethernet*"} | Set-NetConnectionProfile -NetworkCategory Private
Write-Log "`nAdjusting System Time..."
w32tm /resync /force
Write-Log "Stopping PilotGameAgent service..." Write-Log "Stopping PilotGameAgent service..."
Stop-Service -Name "PilotGameAgent" -Force -ErrorAction SilentlyContinue Stop-Service -Name "PilotGameAgent" -Force -ErrorAction SilentlyContinue

View File

@@ -6,8 +6,8 @@
#> #>
# ========= CONFIGURAÇÃO DE USUÁRIO/TOKEN ========= # ========= CONFIGURAÇÃO DE USUÁRIO/TOKEN =========
$GitUser = "ricardo.sarda" # coloque aqui seu usuário do Gitea $GitUser = "ricardo.sarda"
$GitToken = "d6504f7d969c77a51dcbd5854a1f37f0a96398cd" # coloque aqui o Personal Access Token do Gitea $GitToken = "d6504f7d969c77a51dcbd5854a1f37f0a96398cd"
# ================================================ # ================================================
$ErrorActionPreference = 'Stop' $ErrorActionPreference = 'Stop'
@@ -17,13 +17,11 @@ try {
$scriptPath = $MyInvocation.MyCommand.Path $scriptPath = $MyInvocation.MyCommand.Path
if ($scriptPath -and (Test-Path -LiteralPath $scriptPath)) { if ($scriptPath -and (Test-Path -LiteralPath $scriptPath)) {
Unblock-File -LiteralPath $scriptPath -ErrorAction SilentlyContinue Unblock-File -LiteralPath $scriptPath -ErrorAction SilentlyContinue
# remove explicitamente o ADS se existir (não falha se não existir)
Remove-Item -LiteralPath "$scriptPath`:Zone.Identifier" -Force -ErrorAction SilentlyContinue Remove-Item -LiteralPath "$scriptPath`:Zone.Identifier" -Force -ErrorAction SilentlyContinue
} }
} catch {} } catch {}
# ===== Configurações ===== # ===== Configurações =====
$RepoUrl = 'https://gitea.magicis.com.br/PilotSupport/vlt-install' $RepoUrl = 'https://gitea.magicis.com.br/PilotSupport/vlt-install'
$Branch = 'main' $Branch = 'main'
$TargetDir = 'C:\PilotDownloads' $TargetDir = 'C:\PilotDownloads'
@@ -54,7 +52,7 @@ function Ensure-Git-WithWinget {
$gitInstalled = $false $gitInstalled = $false
try { try {
$list = winget list --id Git.Git -e @argsCommon 2>$null $list = winget list --id Git.Git -e 2>$null
if ($list -match 'Git\s+Git') { $gitInstalled = $true } if ($list -match 'Git\s+Git') { $gitInstalled = $true }
} catch { } } catch { }
@@ -68,7 +66,9 @@ function Ensure-Git-WithWinget {
if (-not (Get-Command git -ErrorAction SilentlyContinue)) { if (-not (Get-Command git -ErrorAction SilentlyContinue)) {
$maybeGit = 'C:\Program Files\Git\cmd\git.exe' $maybeGit = 'C:\Program Files\Git\cmd\git.exe'
if (Test-Path $maybeGit) { $env:Path = "C:\Program Files\Git\cmd;$env:Path" } if (Test-Path $maybeGit) {
$env:Path = "C:\Program Files\Git\cmd;$env:Path"
}
} }
$ver = git --version 2>$null $ver = git --version 2>$null
@@ -97,6 +97,37 @@ function Get-GitCommonArgs {
return ,$args return ,$args
} }
function Force-ReplaceFile {
param(
[Parameter(Mandatory = $true)][string]$SourceFile,
[Parameter(Mandatory = $true)][string]$TargetFile
)
if (-not (Test-Path -LiteralPath $SourceFile)) {
throw "Arquivo de origem não encontrado: $SourceFile"
}
$targetParent = Split-Path -Path $TargetFile -Parent
Ensure-Dir $targetParent
if (Test-Path -LiteralPath $TargetFile) {
Remove-Item -LiteralPath $TargetFile -Force -ErrorAction SilentlyContinue
}
Copy-Item -LiteralPath $SourceFile -Destination $TargetFile -Force
Unblock-File -LiteralPath $TargetFile -ErrorAction SilentlyContinue
$srcHash = (Get-FileHash -LiteralPath $SourceFile -Algorithm SHA256).Hash
$dstHash = (Get-FileHash -LiteralPath $TargetFile -Algorithm SHA256).Hash
Write-Info "Hash origem : $srcHash"
Write-Info "Hash destino: $dstHash"
if ($srcHash -ne $dstHash) {
throw "Validação por hash falhou para: $TargetFile"
}
}
try { try {
Ensure-Git-WithWinget Ensure-Git-WithWinget
Ensure-Dir $TargetDir Ensure-Dir $TargetDir
@@ -109,21 +140,25 @@ try {
$env:GIT_TERMINAL_PROMPT = '0' $env:GIT_TERMINAL_PROMPT = '0'
if (Test-Path (Join-Path $WorkDir '.git')) { # ===== AUTOATUALIZAÇÃO FORÇADA =====
Write-Info "Atualizando repositório em $WorkDir ..." Write-Info "Preparando diretório temporário para clone limpo..."
Push-Location $WorkDir
& git (Get-GitCommonArgs -AuthHeader $AuthHeader) fetch --all --prune if (Test-Path -LiteralPath $WorkDir) {
& git (Get-GitCommonArgs -AuthHeader $AuthHeader) checkout $Branch Write-Info "Removendo diretório temporário antigo..."
& git (Get-GitCommonArgs -AuthHeader $AuthHeader) reset --hard "origin/$Branch" Remove-Item -LiteralPath $WorkDir -Recurse -Force -ErrorAction SilentlyContinue
Pop-Location
} else {
Write-Info "Clonando repositório (branch $Branch) para $WorkDir ..."
try { Remove-Item -LiteralPath $WorkDir -Recurse -Force -ErrorAction SilentlyContinue } catch { }
Ensure-Dir $WorkDir
& git (Get-GitCommonArgs -AuthHeader $AuthHeader) clone --depth 1 --branch $Branch $RepoUrl $WorkDir
Write-Ok "Clone concluído."
} }
Ensure-Dir $WorkDir
Write-Info "Clonando repositório (branch $Branch) para $WorkDir ..."
& git (Get-GitCommonArgs -AuthHeader $AuthHeader) clone --depth 1 --branch $Branch $RepoUrl $WorkDir
if (-not (Test-Path -LiteralPath (Join-Path $WorkDir '.git'))) {
throw "Falha ao clonar repositório."
}
Write-Ok "Clone concluído."
Write-Info "Copiando arquivos para $TargetDir (sem espelhar)..." Write-Info "Copiando arquivos para $TargetDir (sem espelhar)..."
$rc = robocopy ` $rc = robocopy `
$WorkDir ` $WorkDir `
@@ -135,27 +170,40 @@ try {
/LOG:$CopyLog /LOG:$CopyLog
if ($LASTEXITCODE -ge 8) { if ($LASTEXITCODE -ge 8) {
Write-Err "Falha ao copiar arquivos. Veja o log: $CopyLog" throw "Falha ao copiar arquivos. Veja o log: $CopyLog"
exit $LASTEXITCODE
} else { } else {
Write-Ok "Cópia finalizada. (código robocopy: $LASTEXITCODE) Log: $CopyLog" Write-Ok "Cópia finalizada. (código robocopy: $LASTEXITCODE) Log: $CopyLog"
} }
$InstallScript = Join-Path $TargetDir 'pilot_install.ps1' # ===== FORÇA A ATUALIZAÇÃO DOS ARQUIVOS PRINCIPAIS =====
if (Test-Path -LiteralPath $InstallScript) { $SourceInstallScript = Join-Path $WorkDir 'pilot_install.ps1'
Write-Info "Executando $InstallScript ..." $TargetInstallScript = Join-Path $TargetDir 'pilot_install.ps1'
try { Unblock-File -LiteralPath $InstallScript -ErrorAction SilentlyContinue } catch { } $SourceUtilityScript = Join-Path $WorkDir 'pilot_installer_utilities.ps1'
$TargetUtilityScript = Join-Path $TargetDir 'pilot_installer_utilities.ps1'
Write-Info "Forçando atualização de pilot_install.ps1 ..."
Force-ReplaceFile -SourceFile $SourceInstallScript -TargetFile $TargetInstallScript
Write-Ok "pilot_install.ps1 atualizado com sucesso."
Write-Info "Forçando atualização de pilot_installer_utilities.ps1 ..."
Force-ReplaceFile -SourceFile $SourceUtilityScript -TargetFile $TargetUtilityScript
Write-Ok "pilot_installer_utilities.ps1 atualizado com sucesso."
if (Test-Path -LiteralPath $TargetInstallScript) {
Write-Info "Executando $TargetInstallScript ..."
try { Unblock-File -LiteralPath $TargetInstallScript -ErrorAction SilentlyContinue } catch { }
$p = Start-Process -FilePath 'powershell.exe' -ArgumentList @( $p = Start-Process -FilePath 'powershell.exe' -ArgumentList @(
'-NoProfile','-ExecutionPolicy','Bypass','-File', $InstallScript '-NoProfile','-ExecutionPolicy','Bypass','-File', $TargetInstallScript
) -Wait -PassThru ) -Wait -PassThru
if ($p.ExitCode -ne 0) { if ($p.ExitCode -ne 0) {
Write-Err "pilot_install.ps1 retornou código $($p.ExitCode)." Write-Err "pilot_install.ps1 retornou código $($p.ExitCode)."
exit $p.ExitCode Stop-Process -Id $PID -Force
} else { } else {
Write-Ok "pilot_install.ps1 executado com sucesso." Write-Ok "pilot_install.ps1 executado com sucesso."
} }
} else { } else {
Write-Warn "Arquivo não encontrado: $InstallScript. Execução ignorada." Write-Warn "Arquivo não encontrado: $TargetInstallScript. Execução ignorada."
} }
Write-Ok "Processo concluído." Write-Ok "Processo concluído."
@@ -163,7 +211,7 @@ try {
} catch { } catch {
Write-Err ("Erro: " + $_.Exception.Message) Write-Err ("Erro: " + $_.Exception.Message)
exit 1 Stop-Process -Id $PID -Force
} finally { } finally {
Remove-Item Env:\GIT_TERMINAL_PROMPT -ErrorAction SilentlyContinue Remove-Item Env:\GIT_TERMINAL_PROMPT -ErrorAction SilentlyContinue
} }