Compare commits

..

3 Commits

Author SHA1 Message Date
05a220110d added a hopfully temp hack for DCE 2023-05-29 21:50:01 +02:00
9b10ff1d14 added example service 2023-05-29 21:49:41 +02:00
0c9f186d8a added service bin 2023-05-29 21:49:22 +02:00
5 changed files with 64 additions and 2 deletions

View File

@@ -0,0 +1,23 @@
package bin;
import kernel.log.Log;
import kernel.Timer;
import kernel.ps.ProcessHandle;
import kernel.ps.Process;
class HelloWorldService implements Process {
public function new() {}
public function run(handle:ProcessHandle) {
Log.debug("HelloWorldService started");
handle.write("Hello World! Started\n");
this.startTimer(handle);
}
public function startTimer(handle: ProcessHandle) {
new Timer(1000, function() {
handle.write("Hello World!\n");
this.startTimer(handle);
});
}
}

View File

@@ -43,10 +43,24 @@ class Service extends CLIAppBase {
},"Register a new service");
registerSyncSubcommand("unregister", (args) ->{
return true;
if (args.length < 2) {
return false;
}
var name = args[0];
var result = ServiceManager.instace.unregister(name);
return handleResult(result);
},"Unregister a service");
registerSyncSubcommand("list", (args) ->{
var list = ServiceManager.instace.listRunning();
for (name in list) {
this.handle.writeLine(name);
}
return true;
},"List all services");
}

21
src/kernel/DCEHack.hx Normal file
View File

@@ -0,0 +1,21 @@
package kernel;
@:keep
class DCEHack {
// Dont actually call this
public static function load() {
return [
new bin.Disk(),
new bin.GPS(),
new bin.HelloWorld(),
new bin.KernelLog(),
new bin.LSPS(),
new bin.Net(),
new bin.Redstone(),
new bin.Service(),
new bin.Terminal(),
new bin.Turtle(),
new bin.HelloWorldService(),
];
}
}

View File

@@ -15,6 +15,8 @@ import kernel.ui.WindowManager;
import kernel.peripherals.Peripherals.Peripheral;
import kernel.net.Net;
import kernel.DCEHack; // Important for DCE hack
class Init {
@:allow(kernel.KernelEvents)

View File

@@ -1,5 +1,6 @@
package kernel.binstore;
import bin.HelloWorldService;
import bin.Service;
import bin.LSPS;
import bin.Turtle;
@@ -25,7 +26,8 @@ class BinStore {
{c: Terminal, name: "Terminal", aliases: ["terminal","term"]},
{c: Turtle, name: "Turtle", aliases: ["turtle"]},
{c: LSPS, name: "PM", aliases: ["lsps"]},
{c: Service, name: "Service", aliases: ["service","srv"]}
{c: Service, name: "Service", aliases: ["service","srv"]},
{c: HelloWorldService, name: "HelloWorldService", aliases: ["hello-service"] }
];
@:allow(kernel.Init)