-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathstart.ps1
More file actions
56 lines (46 loc) · 1.43 KB
/
start.ps1
File metadata and controls
56 lines (46 loc) · 1.43 KB
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
# Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope Process
$MAGENTA = "`e[1;35m"
$YELLOW = "`e[1;33m"
$BOLD = "`e[1m"
$NC = "`e[0m"
$WHITE = "`e[1;37m"
function Cleanup {
Write-Host ""
Write-Host "(pwsh)$MAGENTA${BOLD}Stopping processes...$NC"
if ($serverJob) { Stop-Job $serverJob }
if ($clientJob) { Stop-Job $clientJob }
Get-Job | Remove-Job -Force
Write-Host ""
Write-Host "(pwsh) $MAGENTA${BOLD}All processes stopped$NC"
}
[Console]::TreatControlCAsInput = $false
[Console]::CancelKeyPress.Add({
Cleanup
exit
})
Write-Host "(pwsh) $MAGENTA${BOLD}Starting backend server...$NC"
$serverJob = Start-Job -ScriptBlock {
Set-Location server
python server.py
}
Start-Sleep -Seconds 11
Write-Host "(pwsh) $MAGENTA${BOLD}Backend server started$NC $YELLOW(PID: $($serverJob.Id))$NC"
Write-Host ""
Write-Host "(pwsh) $MAGENTA${BOLD}Starting Frontend client...$NC"
$clientJob = Start-Job -ScriptBlock {
Set-Location client
npm run dev
}
Start-Sleep -Seconds 4
Write-Host ""
Write-Host "(pwsh) $MAGENTA${BOLD}Frontend client started at$NC $YELLOW(PID: $($clientJob.Id))$MAGENTA${BOLD}; Backend server at$NC $YELLOW(PID: $($serverJob.Id))$NC"
Write-Host "(pwsh) $MAGENTA${BOLD}Press$NC $WHITE${BOLD} CTRL + C $MAGENTA${BOLD}to exit$NC"
Write-Host ""
Write-Host ""
Write-Host ""
try {
Wait-Job -Job $serverJob, $clientJob -ErrorAction SilentlyContinue | Out-Null
}
finally {
Cleanup
}