示例#1
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="errMsg"></param>
        /// <returns></returns>
        public bool createGitignore(List <string> foldersToIgnore, List <string> extensionsToIgnore, out string errMsg)
        {
            log.Debug(" -- createGitignore()");
            GitignoreHandler gitHand = new GitignoreHandler(this.paths.steamGame, foldersToIgnore, extensionsToIgnore);

            gitHand.createGitignore(out errMsg);
            return(true);
        }
        /// <summary>
        /// Helper to create the content of the .gitignore file.
        /// </summary>
        /// <returns></returns>
        private string buildGitignore()
        {
            // buffer
            string        content  = "";
            List <string> lineList = new List <string>();
            string        itemTemp = "";

            // -- manual section
            content  = GitignoreHandler.addGitignoreSection(content, "Manually added files (add down below any file you want to gitignore)", false);
            content += "\r\n";

            // -- user extensions
            lineList.Clear();
            foreach (var item in this.ignoreExtensions)
            {
                itemTemp = "";
                if (item.StartsWith("."))
                {
                    item.Substring(1);
                }
                itemTemp = "*." + item;
                lineList.Add(itemTemp);
            }
            content = GitignoreHandler.addGitignoreSection(content, "Default extensions", true);
            content = GitignoreHandler.addLines(content, lineList);

            // -- user folders
            lineList.Clear();
            itemTemp = "";
            foreach (var item in this.ignoreDirs)
            {
                itemTemp = GitignoreHandler.gitignoreLineFormat(item) + "/*";
                lineList.Add(itemTemp);
            }
            content = GitignoreHandler.addGitignoreSection(content, "User defined folders", true);
            content = GitignoreHandler.addLines(content, lineList);

            // -- -- autogen section
            if (Directory.Exists(rootDir))
            {
                string lineContent = "";
                lineList.Clear();
                foreach (string file in Directory.EnumerateFiles(this.rootDir,
                                                                 "*.*",
                                                                 System.IO.SearchOption.AllDirectories))
                {
                    lineContent = file.Replace(this.rootDir, "").Trim();
                    lineContent = GitignoreHandler.gitignoreLineFormat(lineContent);
                    if (this.addToAutogenSection(lineContent))
                    {
                        lineList.Add(lineContent);
                    }
                }
                content = GitignoreHandler.addGitignoreSection(content, "Augo-generated by spear.exe", true);
                content = GitignoreHandler.addLines(content, lineList);
            }
            return(content);
        }