public static bool ProcessCommand(String cmd, String args) { CommandBase c = Find(cmd); if (c == null) { PulsarDirectory dir = PulsarDirectory.GetDirectoryByFullName(Pulsar.Environment.GlobalEnvironment.Current["CURRENTDIR"]); if (dir != null) { PulsarFile 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()) { //Pulsar.Executables.BinaryLoader.CallRaw(fl.ReadAllBytes()); return(true); } } } return(false); } if (c.CanExecute(args)) { c.Execute(args); } return(true); }
private static void CreateFileAndVerify(string file, string directory) { PulsarDirectory dir = PulsarFileSystem.mFS.Root.GetDirectoryByName(directory); if (dir != null) { dir.AddFile(file); PulsarFile 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)) { PulsarFile accfile = PulsarDirectory.GetFileByFullName("/etc/passwd"); if (accfile == null) { PulsarFileSystem.mFS.Root.GetDirectoryByName("etc").AddFile("passwd"); accfile = PulsarDirectory.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); PulsarFile motd = PulsarDirectory.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 { Security.Account u = new Security.Account(GlobalEnvironment.Current["USER"]); String h = GlobalEnvironment.Current["HOST"]; PulsarDirectory dir = PulsarDirectory.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) { PulsarFile accfile = PulsarDirectory.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!"); } }
public override void Execute(String args) { if (String.IsNullOrEmpty(args)) { Helper.WriteLine("target File non specified"); return; } var dir = PulsarDirectory.GetDirectoryByFullName(GlobalEnvironment.Current["CURRENTDIR"]); PulsarFile file = dir.GetFileByName(args); if (file == null) { file = PulsarDirectory.GetFileByFullName(args); } if (file == null) { Helper.WriteLine("Can't find file"); } else { String content = file.ReadAllText(); Helper.WriteLine(content); } }