-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathinstall.ps1
36 lines (29 loc) · 1.2 KB
/
install.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
$currentPrincipal = New-Object Security.Principal.WindowsPrincipal([Security.Principal.WindowsIdentity]::GetCurrent())
$isAdmin = $currentPrincipal.IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)
if ($isAdmin) {
foreach ($item in Get-ChildItem cmd | Where-Object { $_.PsIsContainer -eq $True }) {
$name = $item.Name
Write-Host "building $name"
go build -o ".\bin\$name.exe" ".\cmd\$name\main.go"
Write-Host "stopping..."
Invoke-Expression -ErrorAction Continue ".\bin\$name.exe stop"
Write-Host "stopped"
Write-Host "uninstalling..."
Invoke-Expression -ErrorAction Continue ".\bin\$name.exe uninstall"
Write-Host "uninstalled"
Write-Host "copying..."
Copy-Item *.dll ".\bin"
Write-Host "copied"
Write-Host "installing..."
Invoke-Expression -ErrorAction Continue ".\bin\$name.exe install"
Write-Host "installed"
Write-Host "starting..."
Invoke-Expression -ErrorAction Continue ".\bin\$name.exe start"
Write-Host "started"
Read-Host "Press any key to continue..."
}
}
else {
$myPath = Get-Location
Start-Process -FilePath powershell -verb runas -ArgumentList "-NoExit Set-Location $myPath ; $myPath\install.ps1"
}