public void MutateReadme() { var basePath = Path.Combine(Assembly.GetExecutingAssembly().Location, "..", "..", "..", "..", ".."); var stats = new DirWalker().DoWork(new[] { Path.Combine(basePath, "Git.cs") }); var shieldsRegEx = new Regex("<!--start-->.*<!--end-->", RegexOptions.Singleline); var githubShields = new WebFormatter().CreateGithubShields(stats); var readmePath = Path.Combine(basePath, "README.md"); var oldReadme = File.ReadAllText(readmePath); var newReadMe = shieldsRegEx.Replace(oldReadme, $"<!--start-->\r\n{githubShields}\r\n<!--end-->"); if (oldReadme != newReadMe) { File.WriteAllText(readmePath, newReadMe); } }
/// @brief Thread parsing and generating file in a separeted thread /// /// @param parameter generic object containing PROCEDURE_ARGS struct private void ThreadProcedure(object parameter) { DirectoryInfo directory_info; List <FileInfo> folder_to_analyze; DirWalker dir_walker; PROCEDURE_ARGS args = (PROCEDURE_ARGS)parameter; folder_to_analyze = new List <FileInfo>(); if (Directory.Exists(args.path)) { // Verifying if path is a direcotry directory_info = new DirectoryInfo(args.path); dir_walker = new DirWalker(); dir_walker.FullDirList(directory_info, "*", folder_to_analyze, null); dir_walker = null; } else if (File.Exists(args.path)) { // Verifying if path is a file folder_to_analyze.Add(new FileInfo(args.path)); } else { // Error _Thread = null; return; } foreach (FileInfo fi in folder_to_analyze) { if ((args.extensions == null) || (args.extensions.Contains(fi.Extension))) { // Verify and Generate a file with Doxygen skeleton or generating warning Log.Instance.AppendEvent("Analyzing " + fi.FullName); VerifyAndGenerate(fi.FullName); } } _Thread = null; }