Exemplo n.º 1
0
        private void ReadOptions()
        {
            foreach (string ConfigLine in ConfigFile)
            {
                string OptionFound = null;
                string OptionEntry = null;
                foreach (string OptionName in OptionsDirNames)
                {
                    if (ConfigLine.ToLower().Contains(OptionName.ToLower()) && !ConfigLine.Contains("#"))
                    {
                        OptionFound = OptionName;
                        break;
                    }
                }
                if (OptionFound == null)
                {
                    foreach (string OptionName in OptionsDefaultNames)
                    {
                        if (ConfigLine.ToLower().Contains(OptionName.ToLower()) && !ConfigLine.Contains("#"))
                        {
                            OptionFound = OptionName;
                            break;
                        }
                    }
                }
                if (OptionFound == null)
                {
                    continue;
                }
                OptionEntry = @ConfigLine.Substring(OptionFound.Length + 1);
                OptionEntry = OptionEntry.Trim();
                if (OptionFound.ToLower().Contains("packageroot"))
                {
                    OptionsPackageRoots.Add(OptionEntry);
                    continue;
                }

                if (Options.ContainsKey(OptionFound))
                {
                    Options[OptionFound].Replace(Options[OptionFound], OptionEntry);
                }
                else
                {
                    Options.Add(OptionFound, OptionEntry);
                }
            }
        }
Exemplo n.º 2
0
        /// <summary>
        ///     Saves the Ecompile.Cfg back to file with any changes. File Output
        ///     is tabbed so that settings are in a straight column and all original
        ///     lines that were NOT settings are retained as original.
        /// </summary>
        /// <returns>Bool for success</returns>
        public bool SaveConfig()
        {
            // Let's Ditch ALL PackageRoot Entries, and mark it's first location
            int PRBegin = ConfigFile.FindIndex(FindPackageRoots);

            ConfigFile.RemoveAll(FindPackageRoots);
            foreach (string PackageRootElem in OptionsPackageRoots)
            {
                int    i         = (28 - "PackageRoot".Length);
                string TabString = "";
                while (i > 0)
                {
                    TabString += "\t";
                    i         -= 4;
                }
                ConfigFile.Insert(PRBegin, "PackageRoot" + TabString + PackageRootElem);
            }

            string[] SaveContents = new string[ConfigFile.Count];
            ConfigFile.CopyTo(SaveContents);
            int LineIndex = 0;

            foreach (string ConfigLine in ConfigFile)
            {
                foreach (string OptionName in OptionsDirNames)
                {
                    if (ConfigLine.ToLower().Contains(OptionName.ToLower()) && !ConfigLine.Contains("#") && OptionName != "PackageRoot")
                    {
                        // We found a Directory Option! REPLACE IT!
                        int    i         = (28 - OptionName.Length);
                        string TabString = "";
                        while (i > 0)
                        {
                            TabString += "\t";
                            i         -= 4;
                        }
                        SaveContents[LineIndex] = OptionName + TabString + Options[OptionName];
                        break;
                    }
                }

                // Now we add all the Default Option Stuff
                foreach (string OptionName in OptionsDefaultNames)
                {
                    if (ConfigLine.ToLower().Contains(OptionName.ToLower()) && !ConfigLine.Contains("#"))
                    {
                        // We found a Default Option! REPLACE IT!
                        int    i         = (28 - OptionName.Length);
                        string TabString = "";
                        while (i > 0)
                        {
                            TabString += "\t";
                            i         -= 4;
                        }
                        SaveContents[LineIndex] = OptionName + TabString + Options[OptionName];
                        break;
                    }
                }
                LineIndex++;
            }

            // Now we write it all back to the ecompile.cfg. OHHH! AHHH! Go away.
            if (ConfigFileName != null)
            {
                try
                {
                    File.WriteAllLines(ConfigFileName, SaveContents);
                    return(true);
                }
                catch (Exception ex)
                {
                    throw new Exception(ex.ToString());
                }
            }
            return(false);
        }