public override void Execute(String args) { if (args == ".") { return; } else if (args == "..") { GlobalEnvironment.Current["CURRENTDIR"] = GetHomeDir(GlobalEnvironment.Current["CURRENTDIR"]); } else { var dir = NoobDirectory.GetDirectoryByFullName(GlobalEnvironment.Current["CURRENTDIR"]); var name = args; var d = dir.GetDirectoryByName(name); if (d == null) { d = NoobDirectory.GetDirectoryByFullName(name); } if (d == null) { Helper.WriteLine("Can't find path"); } else { GlobalEnvironment.Current["CURRENTDIR"] = d.FullName; } } }
public override void Execute(String args) { if (String.IsNullOrEmpty(args)) { Helper.WriteLine("target File non specified"); return; } var dir = NoobDirectory.GetDirectoryByFullName(GlobalEnvironment.Current["CURRENTDIR"]); NoobFile file = dir.GetFileByName(args); if (file == null) { file = NoobDirectory.GetFileByFullName(args); } if (file == null) { Helper.WriteLine("Can't find file"); } else { String content = file.ReadAllText(); Helper.WriteLine(content); } }
public override void Execute(String args) { if (args == null || args.Length == NumArgs) { Helper.WriteLine("Either no or invalid arguments specified!"); return; } var curDir = NoobDirectory.GetDirectoryByFullName(GlobalEnvironment.Current["CURRENTDIR"]); String dirName = args; String[] str = dirName.Split('/'); if (str.Length > 1) { String fulldir = curDir.FullName; for (int i = 0; i < str.Length - 1; i++) { fulldir += str[i] + "/"; } NoobDirectory app = NoobDirectory.GetDirectoryByFullName(fulldir); if (app != null && str[str.Length - 1] != null && str[str.Length - 1] != "") { app.AddDirectory(str[str.Length - 1]); } } else { curDir.AddDirectory(dirName); } }
/// <summary> /// Executes the command specified. /// </summary> /// <param name="cmd">the command name</param> /// <param name="args">arguments associated with the command</param> /// <returns>true if there is a command of the name and executed, false other wise</returns> public static bool ProcessCommand(String cmd, String args) { CommandBase c = Find(cmd); if (c == null) { NoobDirectory dir = NoobDirectory.GetDirectoryByFullName(NoobOS.Environment.GlobalEnvironment.Current["CURRENTDIR"]); if (dir != null) { NoobFile fl = dir.GetFileByName(cmd); if (fl != null) { Helper.WriteLine("Please make sure the file you have selected IS A BINARY or expect lots of crashes!"); if (Helper.Continue()) { NoobOS.Executables.BinaryLoader.CallRaw(fl.ReadAllBytes()); return(true); } } } return(false); } if (c.CanExecute(args)) { c.Execute(args); } return(true); }
private static void CreateDirectoryAndVerify(string directory) { NoobFileSystem.mFS.Root.AddDirectory(directory); sf = NoobFileSystem.mFS.Root.GetDirectoryByName(directory); if (sf == null) { Helper.Error("Cannot create required files, aborting creation of " + directory); throw new Exception("Failed creation of directories."); } }
public override void Execute(String args) { var dir = NoobDirectory.GetDirectoryByFullName(GlobalEnvironment.Current["CURRENTDIR"]); var dirs = dir.GetDirs(); var files = dir.GetFiles(); dirs.ForEeach(d => Helper.Write(d.ToString() + " ", ConsoleColor.Blue)); files.ForEeach(f => Helper.Write(f.ToString() + " ", ConsoleColor.Green)); }
public override void Execute(String args) { if (String.IsNullOrEmpty(args)) { Helper.WriteLine("Either no or invalid arguments specified!"); } else { String file = args; NoobDirectory dir = NoobDirectory.GetDirectoryByFullName(GlobalEnvironment.Current["CURRENTDIR"]); dir.RemoveFile(file); dir.RemoveDirectory(file); } }
private static void CreateFileAndVerify(string file, string directory) { NoobDirectory dir = NoobFileSystem.mFS.Root.GetDirectoryByName(directory); if (dir != null) { dir.AddFile(file); NoobFile nf = dir.GetFileByName(file); if (nf == null) { throw new Exception("Could not create!"); } } else { throw new ArgumentException("Bad directory"); } }
/// <summary> /// Adds this new user to the Accounts file. /// </summary> /// <param name="newus">New Username</param> /// <param name="newpass">New Password</param> public static bool Add(String newus, String newpass) { if (!Utils.StringContains(newus, InvalidChars)) { NoobFile accfile = NoobDirectory.GetFileByFullName("/etc/passwd"); if (accfile == null) { NoobFileSystem.mFS.Root.GetDirectoryByName("etc").AddFile("passwd"); accfile = NoobDirectory.GetFileByFullName("/etc/passwd"); } hasher.Value = newpass; accfile.WriteAllText(newus + uspasssep + hasher.FingerPrint + usseparator); return(true); } else { return(false); } }
/// <summary> /// Starts a new infinite loop that represents a simple shell /// </summary> public static void StartShell() { Helper.WriteLine("Starting Shell...", ConsoleColor.Green); NoobFile motd = NoobDirectory.GetFileByFullName("/etc/motd"); if (motd == null) { Helper.Error("MOTD not available. Please type touch /etc/motd in the command line!"); } else { Helper.WriteLine(motd.ReadAllText()); } String cmd = ""; do { Account u = new Account(GlobalEnvironment.Current["USER"]); String h = GlobalEnvironment.Current["HOST"]; NoobDirectory dir = NoobDirectory.GetDirectoryByFullName(GlobalEnvironment.Current["CURRENTDIR"]); String consoleline = u.Username + "@" + h + ":" + dir.FullName + "# "; Helper.Write(consoleline); cmd = Helper.ReadLine(); String[] t = cmd.SplitAtFirstSpace(); String c = t[0]; // Command String a = t.Length > 1 ? t[1] : String.Empty; // Argument(s) Boolean p = CommandManager.ProcessCommand(c, a); if (!p) { Helper.WriteLine("No such command found!"); } if (!Helper.LastLineIsEmpty()) { Helper.WriteLine(""); } }while (true); }
/// <summary> /// Account constructor method that check's the user credentials /// </summary> /// <param name="User">Username</param> /// <param name="Pass">Password</param> public Account(String User, String Pass) { NoobFile accfile = NoobDirectory.GetFileByFullName("/etc/passwd"); if (accfile == null) { Helper.Error("/etc/passwd not available! Quitting."); this._OK = false; } hasher.Value = Pass; if (accfile.ReadAllText() == (User + uspasssep + hasher.FingerPrint + usseparator)) { this._Username = User; this._HomeDir = "/"; this._OK = true; Helper.WriteLine("Login Succeded!"); } else { this._OK = false; Helper.Error("Login Failed! Verify user And Password!"); } }