public int XmlParseScript(string path, int isFunction = 0, int isStatement = 0) { Console.WriteLine("ShellXML is deprecated\nShell2 coming in Shell Alpha Release\n"); if (isFunction != 0) // call it { Console.WriteLine($"Parsing ShellXML function at {path}...\n"); } else { Console.WriteLine($"Parsing ShellXML script at {path}...\n"); } XmlDocument script = ShellCore.XmlOpenFile(path); XmlNode script_root = ShellCore.XmlGetRootNode(script, true, "ShellXML", 3); XmlNodeList ScriptTokens; bool result = ShellCore.XmlCheckForChildNodes(script, true, 4); if (result == true) { ScriptTokens = ShellCore.XmlGetChildren(script_root); XmlParseScriptNodes(ScriptTokens); } return(0); }
public void InstallModule(Module module) { Console.WriteLine("Adding to Module List"); XmlDocument ModuleXml = ShellCore.XmlOpenFile("Modules.xml"); XmlNode moduleRoot = ShellCore.XmlGetRootNode(ModuleXml, true, "Modules", 58); ModuleXml = ShellCore.XmlAddNode(ModuleXml, moduleRoot, "Module"); XmlNode moduleModule = ShellCore.XmlGetNode(moduleRoot, "Module"); ModuleXml = ShellCore.XmlAddAttribute(ModuleXml, moduleModule, "Name", module.Name.Trim()); ModuleXml = ShellCore.XmlAddAttribute(ModuleXml, moduleModule, "Author", module.Author.Trim()); ModuleXml = ShellCore.XmlAddAttribute(ModuleXml, moduleModule, "Version", module.Version.Trim()); ModuleXml = ShellCore.XmlAddAttribute(ModuleXml, moduleModule, "Copyright", module.Copyright.Trim()); ModuleXml = ShellCore.XmlAddAttribute(ModuleXml, moduleModule, "Website", module.Website.Trim()); ModuleXml = ShellCore.XmlAddAttribute(ModuleXml, moduleModule, "Dll", module.Dll.Trim()); ModuleXml = ShellCore.XmlAddAttribute(ModuleXml, moduleModule, "Extends", module.Extends.ToString()); ModuleXml = ShellCore.XmlSaveFile(ModuleXml, "Modules.xml"); ShellCore.DeleteFileEx("Modules/Module.xml"); ShellCore.DeleteFileEx("Module.zip"); }
public Module GetModule(string uri, string path) { Console.WriteLine($"Installing module from the Internet at {uri}..."); // displays a message ShellCore.DownloadFileEx(uri, path); ShellCore.ExtractZipFile("Module.zip", "Modules"); XmlDocument ModuleXml = ShellCore.XmlOpenFile("Modules/Module.xml"); Console.WriteLine($"Reading Module XML file..."); XmlNode moduleRoot = ModuleXml.FirstChild; string Name = moduleRoot.Name; if (Name == "#comment") { while (Name == "#comment") { moduleRoot = moduleRoot.NextSibling; // get the next node. Name = moduleRoot.Name; // get the next node until we have an actual node. } } if (Name != "Module") { ShellCore.ElmThrowException(55); } Module Module = new Module(); foreach (XmlNode attribute in moduleRoot.ChildNodes) { switch (attribute.Name) { case "Name": // module name Module.Name = attribute.InnerText; continue; case "Author": // module author Module.Author = attribute.InnerText; continue; case "Version": // module version Module.Version = attribute.InnerText; continue; case "Copyright": // module copyright Module.Copyright = attribute.InnerText; continue; case "Website": // module website Module.Website = attribute.InnerText; continue; case "Dll": // module dll Module.Dll = attribute.InnerText; continue; case "Extends": // which dll does this module extend string trimmedExtends = attribute.InnerText.Trim(); switch (trimmedExtends) { case "shlcore": case "Shlcore": case "shlCore": case "ShlCore": case "shellcore": case "Shellcore": case "shellCore": case "ShellCore": Module.Extends = Extends.ShellCore; continue; case "shlui": case "Shlui": case "shlUi": case "ShlUi": case "ShlUI": case "shellui": case "ShellUi": case "shellUI": case "ShellUI": case "shellUi": case "Shellui": case "shelluI": Module.Extends = Extends.ShellUI; continue; default: ShellCore.ElmThrowException(57); return(Module); } } } return(Module); }