package server;
import js.html.Console;
import js.node.Readline;
import js.Node.process;
using StringTools;
class ConsoleInput {
final main:Main;
public function new(main:Main) {
this.main = main;
}
public function initConsoleInput():Void {
final rl = Readline.createInterface(process.stdin, process.stdout);
haxe.Log.trace = (msg, ?pos) -> {
Readline.clearLine(process.stdout, 0);
Readline.cursorTo(process.stdout, 0, null);
Console.log(msg);
rl.prompt(true);
};
rl.prompt();
rl.on("line", line -> {
parseLine(line);
rl.prompt();
});
// rl.on("close", exit);
}
function parseLine(line:String):Void {
if (line.startsWith("/addAdmin")) {
final args = line.split(" ");
if (args.length != 3) {
trace("Wrong count of arguments");
return;
}
final name = args[1];
final password = args[2];
if (main.badNickName(name)) {
final error = Lang.get("usernameError")
.replace("$MAX", '${main.config.maxLoginLength}');
trace(error);
return;
}
main.addAdmin(name, password);
} else if (line == "/exit") {
main.exit();
return;
} else {
trace('Unknown command "$line". List:
/addAdmin name password | Adds channel admin
/exit | Exit process');
}
}
}