100 lines
2.3 KiB
Haxe
100 lines
2.3 KiB
Haxe
package bin.srsc;
|
|
|
|
import kernel.KernelSettings;
|
|
import kernel.net.Package.NetworkID;
|
|
import lib.CLIAppBase;
|
|
|
|
using tink.CoreApi;
|
|
|
|
class CLI extends CLIAppBase {
|
|
public function new() {
|
|
registerAsyncSubcommand("get", (args) -> {
|
|
if (args.length < 1) {
|
|
handle.writeLine("Not enough arguments");
|
|
return Future.sync(false);
|
|
}
|
|
|
|
var rpc = new SiteRessourceControllerRPC(KernelSettings.siteController);
|
|
|
|
return rpc.get(args[0]).map((res) -> {
|
|
switch (res) {
|
|
case Success(data):
|
|
if (data == null) {
|
|
handle.writeLine("Not found");
|
|
} else {
|
|
handle.writeLine("Found: " + data);
|
|
}
|
|
case Failure(error):
|
|
handle.writeLine("Error: " + error);
|
|
}
|
|
return true;
|
|
});
|
|
}, "<name>");
|
|
|
|
registerAsyncSubcommand("register", (args) -> {
|
|
if (args.length < 2) {
|
|
handle.writeLine("Not enough arguments");
|
|
return Future.sync(false);
|
|
}
|
|
|
|
var id:NetworkID = Std.parseInt(args[1]);
|
|
if (id == null) {
|
|
handle.writeLine("Invalid id");
|
|
return Future.sync(false);
|
|
}
|
|
|
|
var rpc = new SiteRessourceControllerRPC(KernelSettings.siteController);
|
|
|
|
return rpc.register(args[0], id).map((res) -> {
|
|
switch (res) {
|
|
case Success(data):
|
|
handle.writeLine("Success");
|
|
case Failure(error):
|
|
handle.writeLine("Error: " + error);
|
|
}
|
|
|
|
return true;
|
|
});
|
|
}, "<name> <id>");
|
|
|
|
registerAsyncSubcommand("unregister", (args) -> {
|
|
if (args.length < 1) {
|
|
handle.writeLine("Not enough arguments");
|
|
return Future.sync(false);
|
|
}
|
|
|
|
var rpc = new SiteRessourceControllerRPC(KernelSettings.siteController);
|
|
|
|
// FIXME
|
|
return Future.sync(true);
|
|
// return rpc.unregister(args[0]).map((res) -> {
|
|
// switch (res) {
|
|
// case Success(_):
|
|
// handle.writeLine("Success");
|
|
// case Failure(error):
|
|
// handle.writeLine("Error: " + error);
|
|
// }
|
|
|
|
// return true;
|
|
// });
|
|
}, "<name>");
|
|
|
|
registerAsyncSubcommand("list", (args) -> {
|
|
var rpc = new SiteRessourceControllerRPC(KernelSettings.siteController);
|
|
|
|
return rpc.list().map((res) -> {
|
|
switch (res) {
|
|
case Success(data):
|
|
for (name in data) {
|
|
handle.writeLine(name);
|
|
}
|
|
case Failure(error):
|
|
handle.writeLine("Error: " + error);
|
|
}
|
|
|
|
return true;
|
|
});
|
|
});
|
|
}
|
|
}
|