netgescon-day0/scripts/ops/windows/publish-netgescon-panasonic-runtime.ps1

74 lines
2.4 KiB
PowerShell

<#
Copia i file runtime Panasonic/TAPI in una cartella locale stabile Windows.
Uso tipico:
1. tieni il repo dove vuoi anche temporaneamente
2. lancia questo script
3. installa e avvia il bridge dalla cartella runtime locale pubblicata
Vantaggio:
- il task non dipende da S:
- se aggiorni il repo, rilanci questo script e riallinei il runtime locale
#>
param(
[string]$TargetRoot = 'C:\ProgramData\NetGescon\panasonic-live\current',
[switch]$IncludeDocs
)
Set-StrictMode -Version Latest
$ErrorActionPreference = 'Stop'
function Ensure-Directory {
param([string]$Path)
if (-not (Test-Path $Path)) {
New-Item -ItemType Directory -Path $Path -Force | Out-Null
}
}
$sourceRoot = $PSScriptRoot
if (-not (Test-Path $sourceRoot)) {
throw "Cartella sorgente non trovata: $sourceRoot"
}
Ensure-Directory -Path $TargetRoot
$files = @(
'start-netgescon-panasonic-live.ps1',
'start-netgescon-panasonic-live.cmd',
'install-netgescon-panasonic-live-task.ps1',
'install-netgescon-panasonic-live-task.cmd',
'watch-netgescon-panasonic-tapi-dotnet-events.ps1',
'watch-netgescon-panasonic-tapi-com-events.ps1',
'poll-netgescon-panasonic-active-calls.ps1',
'get-netgescon-panasonic-tapi-info.ps1',
'inspect-netgescon-panasonic-address.ps1',
'inspect-netgescon-tapi-interop.ps1',
'test-netgescon-panasonic-api.ps1',
'test-netgescon-panasonic-register-notifications.ps1'
)
foreach ($file in $files) {
$sourcePath = Join-Path $sourceRoot $file
if (Test-Path $sourcePath) {
Copy-Item -Path $sourcePath -Destination (Join-Path $TargetRoot $file) -Force
Write-Host ("COPIATO {0}" -f $file)
}
}
if ($IncludeDocs.IsPresent) {
$docsRoot = Split-Path -Path $sourceRoot -Parent | Split-Path -Parent | Split-Path -Parent
$docPath = Join-Path $docsRoot 'docs\CTI-WINDOWS-TAPI-PROBE.md'
if (Test-Path $docPath) {
Copy-Item -Path $docPath -Destination (Join-Path $TargetRoot 'CTI-WINDOWS-TAPI-PROBE.md') -Force
Write-Host 'COPIATO CTI-WINDOWS-TAPI-PROBE.md'
}
}
Write-Host ''
Write-Host ('Runtime pubblicato in: {0}' -f $TargetRoot)
Write-Host 'Avvio manuale consigliato:'
Write-Host (' {0}' -f (Join-Path $TargetRoot 'start-netgescon-panasonic-live.cmd'))
Write-Host 'Installazione task consigliata:'
Write-Host (' {0} -Mode current-user-logon' -f (Join-Path $TargetRoot 'install-netgescon-panasonic-live-task.cmd'))