added service bin

This commit is contained in:
2023-05-29 12:50:11 +02:00
parent f35c98f912
commit 5985b0c8be
2 changed files with 68 additions and 3 deletions

63
src/bin/Service.hx Normal file
View File

@@ -0,0 +1,63 @@
package bin;
import kernel.service.ServiceManager;
import lib.CLIAppBase;
using tink.CoreApi;
class Service extends CLIAppBase {
public function new() {
registerSyncSubcommand("start", (args) ->{
if (args.length < 1) {
return false;
}
var name = args[0];
var result = ServiceManager.instace.start(name);
return handleResult(result);
},"Start a service");
registerSyncSubcommand("stop", (args) ->{
if (args.length < 1) {
return false;
}
var name = args[0];
var result = ServiceManager.instace.stop(name);
return handleResult(result);
},"Stop a service");
registerSyncSubcommand("register", (args) ->{
if (args.length < 2) {
return false;
}
var name = args[0];
var binName = args[1];
var rest = args.slice(2);
var result = ServiceManager.instace.register(name, binName, rest);
return handleResult(result);
},"Register a new service");
registerSyncSubcommand("unregister", (args) ->{
return true;
},"Unregister a service");
registerSyncSubcommand("list", (args) ->{
return true;
},"List all services");
}
private function handleResult(res: Outcome<Noise,String>): Bool {
switch (res) {
case Success(_):
return true;
case Failure(e):
this.handle.write(e);
return false;
}
}
}