-
Notifications
You must be signed in to change notification settings - Fork 2
/
test-example-service.ps1
40 lines (29 loc) · 1.14 KB
/
test-example-service.ps1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
$errorActionPreference = "Stop"
$currentPwshExe = (Get-Process -id $pid | Get-Item).FullName
$psTestScript = "$PSScriptRoot/test-service.ps1"
$serviceName = "ExampleService-" + (New-Guid)
$serviceWorkingDir = $PSScriptRoot
$serviceCommand = $currentPwshExe
$serviceSharkPath = "$PSScriptRoot/../service-shark.exe"
if(!(Test-Path $serviceSharkPath)) {
Write-Host "service-shark.exe not found. Run 'go build -o service-shark.exe .\main.go'"
exit
}
$serviceBinPath = $serviceSharkPath
$serviceBinPath += ' -name "' + $serviceName + '"'
$serviceBinPath += ' -workdir "' + $serviceWorkingDir + '"'
$serviceBinPath += ' -cmd "' + $serviceCommand + '"'
$serviceBinPath += ' --'
$serviceBinPath += ' "' + $psTestScript + '"'
$serviceBinPath += ' -Message "TestMessage with space!"'
$serviceBinPath += ' -PathVar "env:PATH"'
Write-Host "New-Service:"
Write-Host $serviceBinPath
try {
New-Service -Name $serviceName -BinaryPathName $serviceBinPath -StartupType "Manual"
Start-Service -Name $serviceName
Start-Sleep(5)
} finally {
Stop-Service -Name $serviceName
Remove-Service -Name $serviceName
}