Esempio n. 1
0
        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);
        }
Esempio n. 2
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");
        }
Esempio n. 3
0
        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);
        }