Mercurial > hg > sonic-annotator
diff vext.ps1 @ 315:9ebb9ac79bdf
Update vext
author | Chris Cannam |
---|---|
date | Fri, 06 Oct 2017 13:28:21 +0100 |
parents | d741e2c90eab |
children |
line wrap: on
line diff
--- a/vext.ps1 Thu Jul 13 17:10:13 2017 +0100 +++ b/vext.ps1 Fri Oct 06 13:28:21 2017 +0100 @@ -6,6 +6,9 @@ #> +Set-StrictMode -Version 2.0 +$ErrorActionPreference = "Stop" + $sml = $env:VEXT_SML $mydir = Split-Path $MyInvocation.MyCommand.Path -Parent @@ -40,7 +43,7 @@ } } -if ($args -match "[^a-z]") { +if ($args -match "'""") { $arglist = '["usage"]' } else { $arglist = '["' + ($args -join '","') + '"]' @@ -51,6 +54,10 @@ $program = $program -replace "\\","\\\\" echo "use ""$program""; vext $arglist" | polyml -q --error-exit | Out-Host + if (-not $?) { + exit $LastExitCode + } + } elseif ($sml -eq "smlnj") { $lines = @(Get-Content $program) @@ -74,28 +81,33 @@ }; "@ -split "[\r\n]+" - $outro = @" + $outro = @" val _ = vext $arglist; val _ = OS.Process.exit (OS.Process.success); "@ -split "[\r\n]+" - $script = @() - $script += $intro - $script += $lines - $script += $outro + $script = @() + $script += $intro + $script += $lines + $script += $outro - $tmpfile = ([System.IO.Path]::GetTempFileName()) -replace "[.]tmp",".sml" + $tmpfile = ([System.IO.Path]::GetTempFileName()) -replace "[.]tmp",".sml" - $script | Out-File -Encoding "ASCII" $tmpfile + $script | Out-File -Encoding "ASCII" $tmpfile - $env:CM_VERBOSE="false" + $env:CM_VERBOSE="false" - sml $tmpfile $args[1,$args.Length] + sml $tmpfile - del $tmpfile + if (-not $?) { + del $tmpfile + exit $LastExitCode + } + + del $tmpfile } else { - "Unknown SML implementation name: $sml" - exit 2 + "Unknown SML implementation name: $sml" + exit 2 }