Initial project implementation
This commit is contained in:
@@ -0,0 +1,43 @@
|
||||
param()
|
||||
|
||||
$ErrorActionPreference = "Stop"
|
||||
|
||||
function Write-Info {
|
||||
param([string]$Message)
|
||||
Write-Host "[launcher] $Message"
|
||||
}
|
||||
|
||||
function Get-RunningProcess {
|
||||
param([int]$Id)
|
||||
|
||||
if ($Id -le 0) {
|
||||
return $null
|
||||
}
|
||||
|
||||
try {
|
||||
return Get-Process -Id $Id -ErrorAction Stop
|
||||
} catch {
|
||||
return $null
|
||||
}
|
||||
}
|
||||
|
||||
$projectRoot = Split-Path -Parent $PSCommandPath
|
||||
$statePath = Join-Path $projectRoot ".s1dl\web-ui-state.json"
|
||||
|
||||
if (-not (Test-Path -LiteralPath $statePath)) {
|
||||
Write-Info "No tracked UI process was found."
|
||||
exit 0
|
||||
}
|
||||
|
||||
$state = Get-Content -LiteralPath $statePath -Raw | ConvertFrom-Json
|
||||
$process = Get-RunningProcess -Id ([int]$state.pid)
|
||||
|
||||
if ($process) {
|
||||
Write-Info "Stopping UI process $($process.Id)"
|
||||
Stop-Process -Id $process.Id -Force
|
||||
} else {
|
||||
Write-Info "Tracked process is not running."
|
||||
}
|
||||
|
||||
Remove-Item -LiteralPath $statePath -Force
|
||||
Write-Info "Done."
|
||||
Reference in New Issue
Block a user