private void Set(ArchBenchParser.CommandContext aContext) { if (aContext.ChildCount < 6) { Console.WriteLine("with ( <id> |<name> ) set <property>=<value>"); } var ident = aContext.GetChild(1).GetChild(0) as ITerminalNode; var property = aContext.GetChild(3) as ITerminalNode; var value = aContext.GetChild(5).GetChild(0) as ITerminalNode; IArchBenchPlugIn plugin; if (int.TryParse(ident?.Symbol.Text, out var id)) { plugin = Server.Manager.Get(id - 1); } else { var name = ident?.Symbol.Text.Trim('\''); plugin = Server.Manager.Find(name); } if (plugin.Settings.Contains(property?.Symbol.Text)) { plugin.Settings[property?.Symbol.Text] = value?.Symbol.Text; } }
public override bool VisitCommand(ArchBenchParser.CommandContext aContext) { if (aContext.ChildCount < 1) { return(false); } switch (aContext.GetChild(0).GetText()) { case "help": Help(); break; case "start": Start(aContext.GetChild(1)); break; case "stop": Stop(); break; case "install": Install(aContext.GetChild(1)); break; case "with": Set(aContext); break; case "show": Show(aContext); break; case "enable": Enable(aContext, true); break; case "disable": Enable(aContext, false); break; case "exit": return(Exit()); default: //Console.WriteLine($"Unknown Command: '{ command }'"); return(true); } return(true); }
private void Enable(ArchBenchParser.CommandContext aContext, bool aEnabled) { if (aContext.ChildCount < 2) { Console.WriteLine("usage: enable ( <id> | <name> )"); } else { var child = aContext.GetChild(1) as ITerminalNode; if (int.TryParse(child?.Symbol.Text, out var id)) { Server.Enable(Server.Manager.Get(id - 1), aEnabled); } else { var name = child?.Symbol.Text.Trim('\''); Server.Enable(Server.Manager.Find(name), aEnabled); } } }
private void Show(ArchBenchParser.CommandContext aContext) { //VisitChildren( aContext ); var context = aContext.GetChild(1) as ArchBenchParser.IdentifierOptContext; if (context == null) { return; } if (context.ChildCount == 0) { foreach (var plugin in Server.Manager.PlugIns) { var index = Server.Manager.IndexOf(plugin); Console.WriteLine($"[{ index }] :\t{ plugin.Name } ({ GetStatus(plugin)})"); } } else { if (context.GetChild(0)?.GetChild(0) is ITerminalNode child) { var symbol = child?.Symbol.Text; if (int.TryParse(symbol, out var id)) { Show(Server.Manager.Get(id - 1)); } else { symbol = symbol.Trim('\''); Show(Server.Manager.Find(symbol)); } } } }