Compare commits

..

No commits in common. "80d01833918672abbf83f3bac560c7b7bd0d2aa8" and "07106b9aed6635fee32368b792cfadbf0fa7a946" have entirely different histories.

6 changed files with 28 additions and 93 deletions

3
.gitignore vendored
View File

@ -10,4 +10,5 @@
/*.sh~ /*.sh~
/*.img /*.img
src/include/asuro.pas src/include/asuro.pas
localenv.json .vscode/launch.json
.vscode

2
.vscode/launch.json vendored
View File

@ -6,7 +6,7 @@
"type": "PowerShell", "type": "PowerShell",
"preLaunchTask": "Build", "preLaunchTask": "Build",
"script": "${workspaceFolder}/virtualbox-wrapper.ps1", "script": "${workspaceFolder}/virtualbox-wrapper.ps1",
"args": ["-Command", "up"], "args": ["-MachineName", "7d395c96-891c-4139-b77d-9b6b144b0b93"],
"cwd": "${workspaceFolder}", "cwd": "${workspaceFolder}",
} }
] ]

26
.vscode/tasks.json vendored
View File

@ -9,18 +9,14 @@
"command": "docker-compose", "command": "docker-compose",
"args": [ "args": [
"run", "run",
"builder", "builder"
], ],
"type": "shell", "type": "shell",
"problemMatcher": [], "problemMatcher": [],
"group": { "group": {
"kind": "build", "kind": "build",
"isDefault": true "isDefault": true
}, }
"dependsOn": [
"Close VirtualBox",
"Clean"
]
}, },
{ {
"label": "Build (Builder)", "label": "Build (Builder)",
@ -30,24 +26,6 @@
"builder" "builder"
], ],
"type": "shell" "type": "shell"
},
{
"label": "Clean",
"command": "docker-compose",
"args": [
"down",
"--remove-orphans"
],
"type": "shell"
},
{
"label": "Close VirtualBox",
"command": "./virtualbox-wrapper.ps1",
"args": [
"-Command",
"down"
],
"type": "shell"
} }
] ]
} }

View File

@ -1,3 +1,4 @@
version: "3.9"
services: services:
builder: builder:
build: . build: .

View File

@ -50,26 +50,23 @@ We welcome everyone to give building/breaking/fixing/shooting Asuro a go, feel f
```xml ```xml
<Machine uuid="{7d395c96-891c-4139-b77d-9b6b144b0b93}" name="Asuro" OSType="Linux" snapshotFolder="Snapshots" lastStateChange="2021-06-20T20:33:07Z"> <Machine uuid="{7d395c96-891c-4139-b77d-9b6b144b0b93}" name="Asuro" OSType="Linux" snapshotFolder="Snapshots" lastStateChange="2021-06-20T20:33:07Z">
``` ```
Copy the uuid, in our case `7d395c96-891c-4139-b77d-9b6b144b0b93` & create a `localenv.json` file in the project root with the following content: Copy the uuid, in our case `7d395c96-891c-4139-b77d-9b6b144b0b93` and replace the uuid found in `.vscode\launch.json` under `args`, so that it looks something like this:
```json ```json
{ {
"VirtualBox":{ "configurations": [
"MachineName":"<YOUR_UUID_OR_MACHINE_NAME>" {
} "name":"Run",
"request": "launch",
"type": "PowerShell",
"preLaunchTask": "Build",
"script": "${workspaceFolder}/virtualbox-wrapper.ps1",
"args": ["-MachineName", "7d395c96-891c-4139-b77d-9b6b144b0b93"],
"cwd": "${workspaceFolder}",
}
]
} }
``` ```
This will allow VSCode to automatically launch VirtualBox once Asuro has been compiled. This will allow VSCode to automatically launch VirtualBox once Asuro has been compiled.
You can also enable the serial adapter "COM1" in mode "Raw File", give it a path, and provide this path in the `localenv.json` as follows:
```json
{
"VirtualBox" : {
"MachineName": "<YOUR_UUID_OR_MACHINE_NAME>",
"LogLocation": "Fully\\Qualified\\Path\\To\\Your\\Log\\File"
}
}
```
This will allow you to see the console output from Asuro in your host terminal.
13. Open your project folder in VSCode, use CTRL+SHIFT+B to build & F5 to build + run in VBox. 13. Open your project folder in VSCode, use CTRL+SHIFT+B to build & F5 to build + run in VBox.
14. Congratulations! You can now play with Asuro! 14. Congratulations! You can now play with Asuro!

View File

@ -1,58 +1,16 @@
<#
You need a local git-ignored localenv.json file with the following content:
{
"virtualbox": {
"MachineName": "your-machine-name or guid"
}
}
#>
param ( param (
[Parameter(Mandatory=$true)] $MachineName
[ValidateSet('up', 'down')]
[String]$Command
) )
$Config = Get-Content .\localenv.json | ConvertFrom-Json VBoxManage.exe startvm $MachineName
$MachineName = $Config.virtualbox.MachineName
$LogLocation = $Config.virtualbox.LogLocation
$LogOutputEnabled = $LogLocation -ne $null
if ($Command -eq 'up') { $running=$true
while($running) {
if($LogOutputEnabled) { Start-Sleep -Seconds 1
Clear-Content $LogLocation $status=(VBoxManage.exe list runningvms)
if($status) {
$running=$status.contains($MachineName)
} else {
$running=$false
} }
$MonitorJob = Start-Job -ArgumentList $MachineName -ScriptBlock {
param($MachineName)
Write-Output "Starting $MachineName"
VBoxManage.exe startvm $MachineName
$running=$true
while($running) {
$status=(VBoxManage.exe list runningvms)
if($status) {
$running=$status.contains($MachineName)
} else {
$running=$false
}
}
}
if($LogOutputEnabled) {
$LogJob = Start-Job -ArgumentList $LogLocation -ScriptBlock {
param($LogLocation)
Get-Content -Path $LogLocation -Wait
}
}
while($MonitorJob.State -eq 'Running') {
if($LogOutputEnabled) {
Receive-Job $LogJob
}
Receive-Job $MonitorJob
}
} elseif ($Command -eq 'down') {
Write-Output "Stopping $MachineName"
VBoxManage.exe controlvm $MachineName poweroff
} }