public void ExecuteCommand(Extension.IEnsoService service, Command command) { Logging.AddActionLog(string.Format("CommandsManager: Executing command '{0}' ...", command.Name)); if (command.Name == "repeat") { Logging.AddActionLog(string.Format("CommandsManager: Repeating last command: {0}", CommandsHistory.GetLast().caption)); CommandsHistory.GetLast().Execute(service); } else if (command.Name == "remove" || command.Name == "forget") { command.parametersOnExecute[0].GetProvider().Remove(command.parametersOnExecute[0]); Logging.AddActionLog(string.Format("CommandsManager: Command '{0}' removed.", command.parametersOnExecute[0].GetCaption())); MessagesHandler.Display(string.Format("{0} removed.", command.parametersOnExecute[0].GetCaption())); } else if (command.Name == "command name" && command.Postfix == "postfix [item] [item2]") { MessagesHandler.Display(string.Format("Executing {0} ...", command.Name)); } else { throw new ApplicationException(string.Format("HistoryManager: Command not found. Command: {0} {1}", command.Name, command.Postfix)); } }
public void PopTest() { var c1 = new TestCommand("1"); var c2 = new TestCommand("2"); var c3 = new TestCommand("3"); var ch = new CommandsHistory(); ch.Push(c1); ch.Push(c2); ch.Push(c3); Assert.Equal(c3, ch.Pop()); Assert.Equal(c2, ch.Pop()); Assert.Equal(c1, ch.Pop()); }
public void CantMoveForward() { var c1 = new TestCommand("1"); var c2 = new TestCommand("2"); var c3 = new TestCommand("3"); var ch = new CommandsHistory(); ch.Push(c1); ch.Push(c2); ch.Push(c3); var moved = ch.TryMoveForward(out var actual); Assert.False(moved); Assert.Equal(null, actual); }
private void UpdateHistory() { try { HistoryListBox.Items.Clear(); var history = new CommandsHistory(CompanyName).Load(); foreach (var command in history) { HistoryListBox.Items.Add(command); } } catch (Exception exception) { OnExceptionOccurred(exception); } }
public static void Run() { var history = new CommandsHistory(); var document = new HtmlDocument(); document.Content = "Hello World!"; var boldCommand = new BoldCommand(document, history); boldCommand.Execute(); Console.WriteLine(document.Content); var undoCommand = new UndoCommand(history); undoCommand.Execute(); Console.WriteLine(document.Content); }
public void ClearingUnusedItems() { var c1 = new TestCommand("1"); var c2 = new TestCommand("2"); var c3 = new TestCommand("3"); var c4 = new TestCommand("4"); var ch = new CommandsHistory(); ch.Push(c1); ch.Push(c2); ch.Push(c3); ch.Push(c4); ch.Pop(); ch.Pop(); ch.Pop(); ch.Push(c4); Assert.Equal(c4, ch.Pop()); }
private Hashtable GetCommands(GameSession gameSession) { // TODO: Split for two functions 1. - Get commands from API 2. Get unfinished commands Hashtable result; _logger.Debug($"Turn {gameSession.Turn}. Commands count is {gameSession.Commands.Count}"); lock (Commands) { result = Commands.DeepClone(); foreach (Command command in Commands.Values) { CommandsHistory.Add(command.DeepClone()); } Commands = new Hashtable(); foreach (Command command in gameSession.Commands.Values) { if (command.UntilTurnId <= gameSession.Turn) { continue; } var commandKey = gameSession.Id + "_" + command.CelestialObjectId + "_" + command.Type; _logger.Info($"Turn {gameSession.Turn} resume command execution. {command.Type}"); result.Add(commandKey, command); } _logger.Debug($"Finished clear turn commands. Count is {result.Count}"); } return(result); }
public static String ReadLine() { var xConsole = GetConsole(); if (xConsole == null) { // for now: return(null); } List <char> chars = new List <char>(32); KeyEvent current; int currentCount = 0; bool firstdown = false; string CMDToComplete = ""; xConsole.CursorVisible = true; while ((current = KeyboardManager.ReadKey()).Key != ConsoleKeyEx.Enter) { if (current.Key == ConsoleKeyEx.NumEnter) { break; } //Check for "special" keys if (current.Key == ConsoleKeyEx.Backspace) // Backspace { CMDToComplete = ""; if (currentCount > 0) { int curCharTemp = GetConsole().X; chars.RemoveAt(currentCount - 1); GetConsole().X = GetConsole().X - 1; //Move characters to the left for (int x = currentCount - 1; x < chars.Count; x++) { Write(chars[x]); } Write(' '); GetConsole().X = curCharTemp - 1; currentCount--; } else { Aura_OS.Kernel.speaker.beep(); } continue; } else if (current.Key == ConsoleKeyEx.LeftArrow) { if (currentCount > 0) { GetConsole().X = GetConsole().X - 1; currentCount--; } continue; } else if (current.Key == ConsoleKeyEx.RightArrow) { if (currentCount < chars.Count) { GetConsole().X = GetConsole().X + 1; currentCount++; } continue; } else if (current.Key == ConsoleKeyEx.Tab) { if (currentCount >= 1) { int index = -1; foreach (char ch in chars) { CMDToComplete = CMDToComplete + ch.ToString(); } foreach (string c in CommandManager.CMDs) { index++; if (c.StartsWith(CMDToComplete)) { CommandsHistory.ClearCurrentConsoleLine(); currentCount = 0; chars.Clear(); Aura_OS.Kernel.BeforeCommand(); foreach (char chr in c) { chars.Add(chr); Write(chr); currentCount++; } } } continue; } } else if (current.Key == ConsoleKeyEx.C && KeyboardManager.ControlPressed) { CMDToComplete = ""; if (Aura_OS.Kernel.AConsole.writecommand) { CommandsHistory.ClearCurrentConsoleLine(); currentCount = 0; chars.Clear(); Aura_OS.Kernel.BeforeCommand(); } } else if (current.Key == ConsoleKeyEx.UpArrow) //COMMAND HISTORY UP { if (Aura_OS.Kernel.AConsole.writecommand) //IF SHELL { CMDToComplete = ""; if (CommandsHistory.CHIndex >= 0) { CommandsHistory.ClearCurrentConsoleLine(); currentCount = 0; chars.Clear(); Aura_OS.Kernel.BeforeCommand(); string Command = Aura_OS.Kernel.AConsole.commands[CommandsHistory.CHIndex]; CommandsHistory.CHIndex = CommandsHistory.CHIndex - 1; foreach (char chr in Command) { if (currentCount == chars.Count) { chars.Add(chr); Write(chr); currentCount++; } else { //Insert the new character in the correct location //For some reason, List.Insert() doesn't work properly //so the character has to be inserted manually List <char> temp = new List <char>(); for (int x = 0; x < chars.Count; x++) { if (x == currentCount) { temp.Add(chr); } temp.Add(chars[x]); } chars = temp; //Shift the characters to the right for (int x = currentCount; x < chars.Count; x++) { Write(chars[x]); } Aura_OS.Kernel.AConsole.X -= (chars.Count - currentCount) - 1; currentCount++; } } } } continue; } else if (current.Key == ConsoleKeyEx.DownArrow) //COMMAND HISTORY UP { if (Aura_OS.Kernel.AConsole.writecommand) //IF SHELL { CMDToComplete = ""; if (CommandsHistory.CHIndex < Aura_OS.Kernel.AConsole.commands.Count - 1) { CommandsHistory.ClearCurrentConsoleLine(); currentCount = 0; chars.Clear(); Aura_OS.Kernel.BeforeCommand(); CommandsHistory.CHIndex = CommandsHistory.CHIndex + 1; if (!firstdown) { CommandsHistory.CHIndex = CommandsHistory.CHIndex + 1; firstdown = true; } string Command = Aura_OS.Kernel.AConsole.commands[CommandsHistory.CHIndex]; foreach (char chr in Command) { if (currentCount == chars.Count) { chars.Add(chr); Write(chr); currentCount++; } else { //Insert the new character in the correct location //For some reason, List.Insert() doesn't work properly //so the character has to be inserted manually List <char> temp = new List <char>(); for (int x = 0; x < chars.Count; x++) { if (x == currentCount) { temp.Add(chr); } temp.Add(chars[x]); } chars = temp; //Shift the characters to the right for (int x = currentCount; x < chars.Count; x++) { Write(chars[x]); } Aura_OS.Kernel.AConsole.X -= (chars.Count - currentCount) - 1; currentCount++; } } } } continue; } if (current.KeyChar == '\0') { continue; } //Write the character to the screen if (currentCount == chars.Count) { chars.Add(current.KeyChar); Write(current.KeyChar); currentCount++; } else { //Insert the new character in the correct location //For some reason, List.Insert() doesn't work properly //so the character has to be inserted manually List <char> temp = new List <char>(); for (int x = 0; x < chars.Count; x++) { if (x == currentCount) { temp.Add(current.KeyChar); } temp.Add(chars[x]); } chars = temp; //Shift the characters to the right for (int x = currentCount; x < chars.Count; x++) { Write(chars[x]); } GetConsole().X -= (chars.Count - currentCount) - 1; currentCount++; } } WriteLine(); xConsole.CursorVisible = false; char[] final = chars.ToArray(); return(new string(final)); }
/// <summary> /// Shell Interpreter /// </summary> /// <param name="cmd">Command</param> public static void _CommandManger(string cmd) { #region Power if (cmd.Equals("shutdown")) {//NOTE: Why isn't it just the constructor? This leaves more room for <package>.<class>.HelpInfo; Power.Shutdown.c_Shutdown(); } else if (cmd.Equals("reboot")) { Power.Reboot.c_Reboot(); } #endregion Power #region Console else if ((cmd.Equals("clear")) || (cmd.Equals("cls"))) { c_Console.Clear.c_Clear(); } else if (cmd.StartsWith("echo ")) { c_Console.Echo.c_Echo(cmd); } else if (cmd.Equals("help")) { System.Translation.List_Translation._Help(); } #endregion Console #region FileSystem else if (cmd.StartsWith("cd ")) { FileSystem.CD.c_CD(cmd); } else if (cmd.Equals("cp")) { FileSystem.CP.c_CP_only(); } else if (cmd.StartsWith("cp ")) { FileSystem.CP.c_CP(cmd); } else if ((cmd.Equals("dir")) || (cmd.Equals("ls"))) { FileSystem.Dir.c_Dir(); } else if ((cmd.StartsWith("dir ")) || (cmd.StartsWith("ls "))) { FileSystem.Dir.c_Dir(cmd); } else if (cmd.Equals("mkdir")) { FileSystem.Mkdir.c_Mkdir(); } else if (cmd.StartsWith("mkdir ")) { FileSystem.Mkdir.c_Mkdir(cmd); } else if (cmd.StartsWith("rmdir ")) { FileSystem.Rmdir.c_Rmdir(cmd); }//TODO: orgainize else if (cmd.StartsWith("rmfil ")) { FileSystem.Rmfil.c_Rmfil(cmd); } else if (cmd.Equals("mkfil")) { FileSystem.Mkfil.c_mkfil(); } else if (cmd.StartsWith("mkfil ")) { FileSystem.Mkfil.c_mkfil(cmd); } else if (cmd.StartsWith("edit ")) { FileSystem.Edit.c_Edit(cmd); } else if (cmd.Equals("vol")) { FileSystem.Vol.c_Vol(); } else if (cmd.StartsWith("run ")) { FileSystem.Run.c_Run(cmd); } #endregion FileSystem #region Settings else if (cmd.Equals("logout")) { Settings.Logout.c_Logout(); } else if (cmd.Equals("settings")) { Settings.Settings.c_Settings(); } else if (cmd.StartsWith("settings ")) { Settings.Settings.c_Settings(cmd); } else if (cmd.StartsWith("passwd ")) { Settings.Passwd.c_Passwd(cmd); } else if (cmd.Equals("passwd")) { Settings.Passwd.c_Passwd(Kernel.userLogged); } #endregion Settings #region System Infomation else if (cmd.Equals("systeminfo")) { SystemInfomation.SystemInfomation.c_SystemInfomation(); } else if ((cmd.Equals("ver")) || (cmd.Equals("version"))) { SystemInfomation.Version.c_Version(); } else if ((cmd.Equals("ipconfig")) || (cmd.Equals("ifconfig")) || (cmd.Equals("netconf"))) { SystemInfomation.IPConfig.c_IPConfig(); } else if ((cmd.Equals("time")) || (cmd.Equals("date"))) { SystemInfomation.Time.c_Time(); } #endregion System Infomation #region Tests else if (cmd.Equals("crash")) { Tests.Crash.c_Crash(); } else if (cmd.Equals("cmd")) { CMDs.Add("ipconfig"); CMDs.Add("netconf"); CMDs.Add("help"); } else if (cmd.Equals("crashcpu")) { int value = 1; value = value - 1; int result = 1 / value; //Division by 0 } else if (cmd.Equals("beep")) { Kernel.speaker.beep(); } else if (cmd.Equals("play")) { Kernel.speaker.playmusic(); } //else if (cmd.StartsWith("xml ")) //{ // Util.xml.CmdXmlParser.c_CmdXmlParser(cmd, 0, 4); //} #endregion Tests #region Tools else if (cmd.Equals("snake")) { Tools.Snake.c_Snake(); } else if (cmd.StartsWith("md5")) { Tools.MD5.c_MD5(cmd); } else if (cmd.StartsWith("sha256")) { Tools.SHA256.c_SHA256(cmd); } #endregion #region Util else if (cmd.StartsWith("export")) { Util.EnvVar.c_Export(cmd); } else if (cmd.Equals("lspci")) { Util.Lspci.c_Lspci(); } else if (cmd.Equals("about")) { Util.About.c_About(); } else { if (cmd.Length <= 0) { Console.WriteLine(); return; } else { Util.CmdNotFound.c_CmdNotFound(); } } CommandsHistory.Add(cmd); //adding last command to the commands history Console.WriteLine(); #endregion Util }
/// <summary> /// Shell Interpreter /// </summary> /// <param name="cmd">Command</param> public static void _CommandManger(string cmd) { CommandsHistory.Add(cmd); //adding last command to the commands history if (cmd.Length <= 0) { Console.WriteLine(); return; } #region Parse command List <string> arguments = Misc.ParseCommandLine(cmd); string firstarg = arguments[0]; //command name if (arguments.Count > 0) { arguments.RemoveAt(0); //get only arguments } #endregion foreach (var command in CMDs) { if (command.ContainsCommand(firstarg)) { ReturnInfo result; if (arguments.Count > 0 && (arguments[0] == "/help" || arguments[0] == "/h")) { ShowHelp(command); result = new ReturnInfo(command, ReturnCode.OK); } else { result = CheckCommand(command); if (result.Code == ReturnCode.OK) { if (arguments.Count == 0) { result = command.Execute(); } else { result = command.Execute(arguments); } } } ProcessCommandResult(result); return; } } Console.ForegroundColor = ConsoleColor.DarkRed; L.Text.Display("UnknownCommand"); Console.ForegroundColor = ConsoleColor.White; Console.WriteLine(); }
public List <Command> GetHistoryCommands(int sessionId, long Id) { return(CommandsHistory.Where(_ => _.CelestialObjectId == Id).ToList()); }
/// <summary> /// Shell Interpreter /// </summary> /// <param name="cmd">Command</param> public static void _CommandManger(string cmd) { if (Kernel.debugger != null) { if (Kernel.debugger.enabled) { Kernel.debugger.Send("[Command] > " + cmd); } } #region Power if (cmd.Equals("shutdown") || cmd.Equals("sd")) {//NOTE: Why isn't it just the constructor? This leaves more room for <package>.<class>.HelpInfo; Power.Shutdown.c_Shutdown(); } else if (cmd.Equals("reboot") || cmd.Equals("rb")) { Power.Reboot.c_Reboot(); } #endregion Power #region Console else if ((cmd.Equals("clear")) || (cmd.Equals("cls"))) { c_Console.Clear.c_Clear(); } else if (cmd.StartsWith("echo ")) { c_Console.Echo.c_Echo(cmd); } else if (cmd.Equals("help")) { System.Translation.List_Translation._Help(); } #endregion Console #region FileSystem else if (cmd.StartsWith("cd ")) { FileSystem.CD.c_CD(cmd); } else if (cmd.Equals("cp")) { FileSystem.CP.c_CP_only(); } else if (cmd.StartsWith("cp ")) { FileSystem.CP.c_CP(cmd); } else if ((cmd.Equals("dir")) || (cmd.Equals("ls"))) { FileSystem.Dir.c_Dir(); } else if ((cmd.StartsWith("dir ")) || (cmd.StartsWith("ls "))) { FileSystem.Dir.c_Dir(cmd); } else if (cmd.Equals("mkdir")) { FileSystem.Mkdir.c_Mkdir(); } else if (cmd.StartsWith("mkdir ")) { FileSystem.Mkdir.c_Mkdir(cmd); } else if (cmd.StartsWith("rmdir ")) { FileSystem.Rmdir.c_Rmdir(cmd); }//TODO: orgainize else if (cmd.StartsWith("rmfil ")) { FileSystem.Rmfil.c_Rmfil(cmd); } else if (cmd.Equals("mkfil")) { FileSystem.Mkfil.c_mkfil(); } else if (cmd.StartsWith("mkfil ")) { FileSystem.Mkfil.c_mkfil(cmd); } else if (cmd.StartsWith("edit ")) { FileSystem.Edit.c_Edit(cmd); } else if (cmd.Equals("vol")) { FileSystem.Vol.c_Vol(); } else if (cmd.StartsWith("run ")) { FileSystem.Run.c_Run(cmd); } else if (cmd.StartsWith("cat")) { FileSystem.Cat.c_Cat(cmd); } #endregion FileSystem #region Settings else if (cmd.Equals("logout")) { Settings.Logout.c_Logout(); } else if (cmd.Equals("settings")) { Settings.Settings.c_Settings(); } else if (cmd.StartsWith("settings ")) { Settings.Settings.c_Settings(cmd); } else if (cmd.StartsWith("passwd ")) { Settings.Passwd.c_Passwd(cmd); } else if (cmd.Equals("passwd")) { Settings.Passwd.c_Passwd(Kernel.userLogged); } #endregion Settings #region System Infomation else if (cmd.Equals("systeminfo")) { SystemInfomation.SystemInfomation.c_SystemInfomation(); } else if ((cmd.Equals("ver")) || (cmd.Equals("version"))) { SystemInfomation.Version.c_Version(); } else if ((cmd.StartsWith("ipconfig")) || (cmd.StartsWith("ifconfig")) || (cmd.StartsWith("netconf"))) { SystemInfomation.IPConfig.c_IPConfig(cmd); } else if ((cmd.Equals("time")) || (cmd.Equals("date"))) { SystemInfomation.Time.c_Time(); } #endregion System Infomation #region Tests else if (cmd.Equals("crash")) { Tests.Crash.c_Crash(); } else if (cmd.Equals("crashcpu")) { int value = 1; value = value - 1; int result = 1 / value; //Division by 0 } else if (cmd.Equals("beep")) { Kernel.speaker.beep(); } else if (cmd.Equals("play")) { Kernel.speaker.playmusic(); } else if (cmd.Equals("udp")) { var xClient = new System.Network.IPV4.UDP.UdpClient(4242); xClient.Connect(new System.Network.IPV4.Address(192, 168, 1, 12), 4242); xClient.Send(Encoding.ASCII.GetBytes("Hello from Aura Operating System!")); } else if (cmd.Equals("tcp")) { var xClient = new System.Network.IPV4.TCP.TCPClient(4343); xClient.Connect(new System.Network.IPV4.Address(192, 168, 1, 12), 4224); xClient.Send(Encoding.ASCII.GetBytes("1")); xClient.Send(Encoding.ASCII.GetBytes("2")); xClient.Send(Encoding.ASCII.GetBytes("3")); xClient.Send(Encoding.ASCII.GetBytes("4")); xClient.Send(Encoding.ASCII.GetBytes("5")); } else if (cmd.Equals("haship")) { Console.WriteLine(new HAL.MACAddress(new byte[] { 00, 01, 02, 03, 04, 05 }).Hash); Console.WriteLine(new System.Network.IPV4.Address(192, 168, 1, 12).Hash); } else if (cmd.Equals("dns")) { System.Network.IPV4.UDP.DNS.DNSClient DNSRequest = new System.Network.IPV4.UDP.DNS.DNSClient(53); DNSRequest.Ask("perdu.com"); } else if (cmd.Equals("net /refresh")) { foreach (HAL.Drivers.Network.NetworkDevice networkDevice in HAL.Drivers.Network.NetworkDevice.Devices) { File.Create(@"0:\System\" + networkDevice.Name + ".conf"); Utils.Settings settings = new Utils.Settings(@"0:\System\" + networkDevice.Name + ".conf"); settings.Edit("ipaddress", "0.0.0.0"); settings.Edit("subnet", "0.0.0.0"); settings.Edit("gateway", "0.0.0.0"); settings.Edit("dns01", "0.0.0.0"); settings.Push(); } } //else if (cmd.StartsWith("xml ")) //{ // Util.xml.CmdXmlParser.c_CmdXmlParser(cmd, 0, 4); //} #endregion Tests #region Tools else if (cmd.Equals("snake")) { Tools.Snake.c_Snake(); } else if (cmd.StartsWith("md5")) { Tools.MD5.c_MD5(cmd); } else if (cmd.StartsWith("sha256")) { Tools.SHA256.c_SHA256(cmd); } else if (cmd.StartsWith("ping")) { Network.Ping.c_Ping(cmd); } else if (cmd.Equals("debug")) { Tools.Debug.c_Debug(); } else if (cmd.StartsWith("debug ")) { Tools.Debug.c_Debug(cmd); } #endregion #region Util else if (cmd.StartsWith("export")) { Util.EnvVar.c_Export(cmd); } else if (cmd.Equals("lspci")) { Util.Lspci.c_Lspci(); } else if (cmd.Equals("about")) { Util.About.c_About(); } else { if (cmd.Length <= 0) { Console.WriteLine(); return; } else if (cmd.Length == 2) { FileSystem.ChangeVol.c_ChangeVol(cmd); } else { Util.CmdNotFound.c_CmdNotFound(); } } CommandsHistory.Add(cmd); //adding last command to the commands history Console.WriteLine(); #endregion Util }
/// <summary> /// Shell Interpreter /// </summary> /// <param name="cmd">Command</param> public static void _CommandManger(string cmd) { CommandsHistory.Add(cmd); //adding last command to the commands history if (cmd.Length <= 0) { Console.WriteLine(); return; } List <string> arguments = Misc.ParseCommandLine(cmd); string firstarg = arguments[0]; //command name if (arguments.Count > 0) { arguments.RemoveAt(0); //get only arguments } foreach (var command in CMDs) { if (command.ContainsCommand(firstarg)) { ReturnInfo result; if (arguments.Count == 0) { result = command.Execute(); } else { result = command.Execute(arguments); } if (result.Code == ReturnCode.ERROR_ARG) { Console.ForegroundColor = ConsoleColor.DarkRed; L.Text.Display("invalidargcommand"); Console.ForegroundColor = ConsoleColor.White; } else if (result.Code == ReturnCode.ERROR) { Console.ForegroundColor = ConsoleColor.DarkRed; Console.WriteLine("Error: " + result.Info); Console.ForegroundColor = ConsoleColor.White; } Console.WriteLine(); return; } } Console.ForegroundColor = ConsoleColor.DarkRed; L.Text.Display("UnknownCommand"); Console.ForegroundColor = ConsoleColor.White; Console.WriteLine(); /* * #region FileSystem * * else if (cmd.StartsWith("cd ")) * { * FileSystem.CD.c_CD(cmd); * } * else if (cmd.Equals("cp")) * { * FileSystem.CP.c_CP_only(); * } * else if (cmd.StartsWith("cp ")) * { * FileSystem.CP.c_CP(cmd); * } * else if ((cmd.Equals("dir")) || (cmd.Equals("ls"))) * { * FileSystem.Dir.c_Dir(); * } * else if ((cmd.StartsWith("dir ")) || (cmd.StartsWith("ls "))) * { * FileSystem.Dir.c_Dir(cmd); * } * else if (cmd.Equals("mkdir")) * { * FileSystem.Mkdir.c_Mkdir(); * } * else if (cmd.StartsWith("mkdir ")) * { * FileSystem.Mkdir.c_Mkdir(cmd); * } * else if (cmd.StartsWith("rmdir ")) * { * FileSystem.Rmdir.c_Rmdir(cmd); * }//TODO: orgainize * else if (cmd.StartsWith("rmfil ")) * { * FileSystem.Rmfil.c_Rmfil(cmd); * } * else if (cmd.Equals("mkfil")) * { * FileSystem.Mkfil.c_mkfil(); * } * else if (cmd.StartsWith("mkfil ")) * { * FileSystem.Mkfil.c_mkfil(cmd); * } * else if (cmd.StartsWith("edit ")) * { * FileSystem.Edit.c_Edit(cmd); * } * else if (cmd.Equals("vol")) * { * FileSystem.Vol.c_Vol(); * } * else if (cmd.StartsWith("run ")) * { * FileSystem.Run.c_Run(cmd); * } * else if (cmd.StartsWith("cat")) * { * FileSystem.Cat.c_Cat(cmd); * } * #endregion FileSystem * #region Settings * * else if (cmd.Equals("logout")) * { * Settings.Logout.c_Logout(); * } * else if (cmd.Equals("settings")) * { * Settings.Settings.c_Settings(); * } * else if (cmd.StartsWith("settings ")) * { * Settings.Settings.c_Settings(cmd); * } * else if (cmd.StartsWith("passwd ")) * { * Settings.Passwd.c_Passwd(cmd); * } * else if (cmd.Equals("passwd")) * { * Settings.Passwd.c_Passwd(Kernel.userLogged); * } * #endregion Settings * #region Tools * * else if (cmd.Equals("snake")) * { * Tools.Snake.c_Snake(); * } * else if (cmd.StartsWith("md5")) * { * Tools.MD5.c_MD5(cmd); * } * else if (cmd.StartsWith("sha256")) * { * Tools.SHA256.c_SHA256(cmd); * } * else if (cmd.Equals("debug")) * { * Tools.Debug.c_Debug(); * } * else if (cmd.StartsWith("debug ")) * { * Tools.Debug.c_Debug(cmd); * } * #endregion */ }
void InitializeCommandProcessor(string[] args, bool printInfo = true, CommandEvaluationContext commandEvaluationContext = null) { SetArgs(args); cons.ForegroundColor = DefaultForeground; cons.BackgroundColor = DefaultBackground; commandEvaluationContext = commandEvaluationContext ?? new CommandEvaluationContext( this, Out, cons.In, Err, null ); CommandEvaluationContext = commandEvaluationContext; if (printInfo) { PrintInfo(CommandEvaluationContext); } // assume the application folder ($env.APPDATA/OrbitalShell) exists and is initialized var lbr = false; // creates user app data folders if (!Directory.Exists(AppDataFolderPath)) { LogAppendAllLinesErrorIsEnabled = false; Info(ColorSettings.Log + $"creating user shell folder: '{AppDataFolderPath}' ... ", false); try { Directory.CreateDirectory(AppDataFolderPath); Success(); } catch (Exception createAppDataFolderPathException) { Fail(createAppDataFolderPathException); } lbr = true; } // initialize log file if (!File.Exists(LogFilePath)) { Info(ColorSettings.Log + $"creating log file: '{LogFilePath}' ... ", false); try { var logError = Log($"file created on {System.DateTime.Now}"); if (logError == null) { Success(); } else { throw logError; } } catch (Exception createLogFileException) { LogAppendAllLinesErrorIsEnabled = false; Fail(createLogFileException); } lbr = true; } // initialize user profile if (!File.Exists(UserProfileFilePath)) { Info(ColorSettings.Log + $"creating user profile file: '{UserProfileFilePath}' ... ", false); try { var defaultProfileFilePath = Path.Combine(DefaultsFolderPath, UserProfileFileName); File.Copy(defaultProfileFilePath, UserProfileFilePath); Success(); } catch (Exception createUserProfileFileException) { Fail(createUserProfileFileException); } lbr = true; } // create/restore commands history CmdsHistory = new CommandsHistory(); var createNewHistoryFile = !File.Exists(HistoryFilePath); if (createNewHistoryFile) { Info(ColorSettings.Log + $"creating user commands history file: '{HistoryFilePath}' ... ", false); } try { if (createNewHistoryFile) #pragma warning disable CS0642 // Possibilité d'instruction vide erronée { using (var fs = File.Create(HistoryFilePath)); } #pragma warning restore CS0642 // Possibilité d'instruction vide erronée CmdsHistory.Init(AppDataFolderPath, HistoryFileName); if (createNewHistoryFile) { Success(); } } catch (Exception createUserProfileFileException) { Fail(createUserProfileFileException); } lbr |= createNewHistoryFile; // create/restore user aliases CommandsAlias = new CommandsAlias(); var createNewCommandsAliasFile = !File.Exists(CommandsAliasFilePath); if (createNewCommandsAliasFile) { Info(ColorSettings.Log + $"creating user commands aliases file: '{CommandsAliasFilePath}' ... ", false); } try { if (createNewCommandsAliasFile) { var defaultAliasFilePath = Path.Combine(DefaultsFolderPath, CommandsAliasFileName); File.Copy(defaultAliasFilePath, CommandsAliasFilePath); } if (createNewCommandsAliasFile) { Success(); } } catch (Exception createUserProfileFileException) { Fail(createUserProfileFileException); } lbr |= createNewHistoryFile; // end inits if (lbr) { Out.Echoln(); } // load kernel commands RegisterCommandsAssembly(CommandEvaluationContext, Assembly.GetExecutingAssembly()); #if enable_test_commands RegisterCommandsClass <TestCommands>(); #endif }
public ShortcutsReader(Code code, CommandsHistory history) { this.code = code; this.history = history; }
/// <summary> /// Shell Interpreter /// </summary> /// <param name="cmd">Command</param> public static void _CommandManger(string cmd) { CommandsHistory.Add(cmd); //adding last command to the commands history if (cmd.Length <= 0) { Console.WriteLine(); return; } List <string> arguments = Misc.ParseCommandLine(cmd); string firstarg = arguments[0]; //command name if (arguments.Count > 0) { arguments.RemoveAt(0); //get only arguments } foreach (var command in CMDs) { if (command.ContainsCommand(firstarg)) { ReturnInfo result = DoCheck(command); if (result.Code == ReturnCode.OK) { if (arguments.Count == 0) { result = command.Execute(); } else { result = command.Execute(arguments); } } if (result.Code == ReturnCode.ERROR_ARG) { Console.ForegroundColor = ConsoleColor.DarkRed; L.Text.Display("invalidargcommand"); Console.ForegroundColor = ConsoleColor.White; } else if (result.Code == ReturnCode.ERROR) { Console.ForegroundColor = ConsoleColor.DarkRed; Console.WriteLine("Error: " + result.Info); Console.ForegroundColor = ConsoleColor.White; } Console.WriteLine(); return; } } Console.ForegroundColor = ConsoleColor.DarkRed; L.Text.Display("UnknownCommand"); Console.ForegroundColor = ConsoleColor.White; Console.WriteLine(); }