59 lines
1.3 KiB
Haxe
59 lines
1.3 KiB
Haxe
package bin.exporter;
|
|
|
|
import lib.exporter.Export;
|
|
import lib.exporter.IExportable;
|
|
import kernel.peripherals.Peripherals.Peripheral;
|
|
import kernel.service.ServiceManager;
|
|
import lib.exporter.Import;
|
|
import lib.CLIAppBase;
|
|
|
|
class Res extends CLIAppBase {
|
|
public function new() {
|
|
registerAsyncSubcommand("get", (args) -> {
|
|
var url = args[0];
|
|
|
|
return Import.get(url).map((res) -> {
|
|
switch (res) {
|
|
case Success(data):
|
|
handle.writeLine(Std.string(data));
|
|
case Failure(err):
|
|
handle.writeLine("Error: ");
|
|
handle.writeLine(Std.string(err));
|
|
}
|
|
return true;
|
|
});
|
|
}, "<url>");
|
|
|
|
registerAsyncSubcommand("register", (args) -> {
|
|
var srv:Null<ResManager> = ServiceManager.get("resmgr");
|
|
|
|
var addr = args[0];
|
|
var name = args[1];
|
|
|
|
if (srv == null) {
|
|
handle.writeLine("Error: resmgr not found");
|
|
return false;
|
|
}
|
|
|
|
var perf:kernel.peripherals.Redstone = Peripheral.getRedstone(addr);
|
|
|
|
if (perf == null) {
|
|
handle.writeLine("Error: peripheral not found");
|
|
return false;
|
|
}
|
|
|
|
return srv.register(name, new Export(perf)).map((res) -> {
|
|
switch (res) {
|
|
case Success(_):
|
|
handle.writeLine("Success");
|
|
return true;
|
|
case Failure(err):
|
|
handle.writeLine("Error: ");
|
|
handle.writeLine(Std.string(err));
|
|
return false;
|
|
}
|
|
});
|
|
}, "<addr> <name>");
|
|
}
|
|
}
|