| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- param(
- [string]$SampleDir,
- [string]$OutDir,
- [string]$LibreOfficePath = "C:\Program Files\LibreOffice\program\soffice.exe"
- )
- $ErrorActionPreference = "Stop"
- $OutputEncoding = [System.Text.Encoding]::UTF8
- [Console]::OutputEncoding = [System.Text.Encoding]::UTF8
- [Console]::InputEncoding = [System.Text.Encoding]::UTF8
- $TestFilesName = "$([char]0x6D4B)$([char]0x8BD5)$([char]0x6587)$([char]0x4EF6)"
- $CompareName = "$([char]0x5BF9)$([char]0x6BD4)$([char]0x7ED3)$([char]0x679C)"
- if ([string]::IsNullOrWhiteSpace($SampleDir)) { $SampleDir = Join-Path $PSScriptRoot $TestFilesName }
- if ([string]::IsNullOrWhiteSpace($OutDir)) { $OutDir = Join-Path $PSScriptRoot (Join-Path $CompareName "node") }
- function Write-Log {
- param([string]$Message)
- Write-Host ("[{0:yyyy-MM-dd HH:mm:ss}] {1}" -f (Get-Date), $Message)
- }
- if (Test-Path $OutDir) { Remove-Item $OutDir -Recurse -Force }
- New-Item -ItemType Directory -Force $OutDir | Out-Null
- $LogFile = Join-Path $OutDir "run.log"
- Start-Transcript -Path $LogFile | Out-Null
- try {
- $ProjectDir = Join-Path $PSScriptRoot "doc2markdown-node"
- Write-Log "Node demo started"
- Write-Log "SampleDir=$SampleDir"
- Write-Log "OutDir=$OutDir"
- Write-Log "ProjectDir=$ProjectDir"
- if (!(Test-Path $SampleDir)) { throw "SampleDir not found: $SampleDir" }
- if (!(Test-Path $ProjectDir)) { throw "ProjectDir not found: $ProjectDir" }
- if (Test-Path $LibreOfficePath) {
- $env:LIBREOFFICE_PATH = $LibreOfficePath
- Write-Log "LIBREOFFICE_PATH=$env:LIBREOFFICE_PATH"
- } else {
- Write-Log "LibreOffice not found at default path: $LibreOfficePath"
- }
- Push-Location $ProjectDir
- try {
- if (!(Test-Path "node_modules")) {
- Write-Log "node_modules not found, running npm install"
- npm install
- }
- Write-Log ("Running npm smoke: {0}" -f $SampleDir)
- npm run smoke -- "$SampleDir" --out-dir "$OutDir"
- Write-Log "npm exit code: $LASTEXITCODE"
- } finally {
- Pop-Location
- }
- Write-Log "Node demo finished"
- } catch {
- Write-Log ("Failed: {0}" -f $_.Exception.Message)
- throw
- } finally {
- Stop-Transcript | Out-Null
- }
|