Add command interruption support with Ctrl+C and cancellation tokens

This commit is contained in:
Stone_Red
2026-06-11 21:27:06 +02:00
parent cda4dcf097
commit 0968d64fa3
8 changed files with 55 additions and 16 deletions
-5
View File
@@ -18,11 +18,6 @@ public class StartGuiCommand : ICommand
return Task.CompletedTask;
}
foreach (Process process in ProcessManager.GetProcessesOfType<CliProcess>())
{
ProcessManager.StopProcess(process.Id);
}
_ = ProcessManager.SpawnProcess<DesktopProcess>();
return Task.CompletedTask;
}
-2
View File
@@ -22,7 +22,5 @@ public class StopGuiCommand : ICommand
{
await ProcessManager.StopProcessAndWaitAsync(process.Id);
}
_ = ProcessManager.SpawnProcess<CliProcess>();
}
}
+9 -1
View File
@@ -12,10 +12,18 @@ namespace RemSox.UI.CLI.Commands
public string Description => "Start the YesNt interpreter";
private int processId;
public async Task ExecuteAsync(string? arguments, Action<string> printLine)
{
int processId = ProcessManager.SpawnProcess<Processes.YesNtInterpreterProcess>(arguments?.Split(',') ?? []);
processId = ProcessManager.SpawnProcess<Processes.YesNtInterpreterProcess>(arguments?.Split(',') ?? []);
await ProcessManager.WaitForProcessExitAsync(processId);
}
public Task StopAsync()
{
ProcessManager.StopProcess(processId);
return Task.CompletedTask;
}
}
}