public bool VersionStaticContentUrl(BuildUtilityOption buildUtilityOptions) { var filesModified = 0; try { this.m_logger.Write("Started task: VersionStaticContentUrl at " + DateTime.Now.ToString(CultureInfo.InvariantCulture), true); this.m_urlUpdateHelpers.Clear(); var targetFileTypes = buildUtilityOptions.TartgetFileTypes.Split(new char[] { '.', ',' }, StringSplitOptions.RemoveEmptyEntries); var contentExtentions = buildUtilityOptions.ContentFileTypes.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); foreach (var fileType in targetFileTypes) { this.m_urlUpdateHelpers.Add(new UrlVersionUpdateHelper(fileType, buildUtilityOptions.UpdateVersion)); } var rootFolder = new DirectoryInfo(buildUtilityOptions.RootFolder); if (rootFolder.Exists) { var files = rootFolder.GetFiles( "*.*", buildUtilityOptions.ScanSubFolders ? SearchOption.AllDirectories : SearchOption.TopDirectoryOnly ).Where(f => contentExtentions.Contains(f.Extension, StringComparer.OrdinalIgnoreCase)).ToList(); this.m_logger.Write("Number of files found : " + files.Count, true); foreach (var file in files) { var fileContent = File.ReadAllText(file.FullName, Encoding.UTF8); var modified = false; foreach (var urlUpdateHelper in this.m_urlUpdateHelpers) { var result = urlUpdateHelper.AppendVersion(ref fileContent, buildUtilityOptions.Version); modified = modified || result; } if (modified) { File.WriteAllText(file.FullName, fileContent, Encoding.UTF8); filesModified++; this.m_logger.Write(string.Format("Updated {0}", file.FullName), buildUtilityOptions.VerboseOutput); } } } this.m_logger.Write("Number of files modified : " + filesModified, true); this.m_logger.Write("Completed task: VersionStaticContentUrl at " + DateTime.Now.ToString(CultureInfo.InvariantCulture), true); return true; } catch (Exception ex) { this.m_logger.Write(ex.Message, false); this.m_logger.Write("Number of files modified : " + filesModified, true); this.m_logger.Write("Completed task: VersionStaticContentUrl at " + DateTime.Now.ToString(CultureInfo.InvariantCulture), true); return false; } }
public static void Main(string[] args) { var buildUtilityOpions = new BuildUtilityOption(); var argumentIndex = 0; var parameter = string.Empty; var command = string.Empty; while (argumentIndex < args.Length) { parameter = args[argumentIndex]; if (parameter.StartsWith("/")) { command = parameter.ToLower(); switch (command) { case "/sf": buildUtilityOpions.ScanSubFolders = true; command = string.Empty; break; case "/m": buildUtilityOpions.MinificationRequired = true; command = string.Empty; break; case "/vo": buildUtilityOpions.VerboseOutput = true; command = string.Empty; break; case "/u": buildUtilityOpions.UpdateVersion = true; command = string.Empty; break; case "/?": //TO DO: Display Help break; } } else if (!string.IsNullOrEmpty(command)) { switch (command) { case "/rf": buildUtilityOpions.RootFolder = parameter; break; case "/v": buildUtilityOpions.Version = parameter; break; case "/ct": buildUtilityOpions.ContentFileTypes = parameter; break; case "/tt": buildUtilityOpions.TartgetFileTypes = parameter; break; } command = string.Empty; } argumentIndex++; } if (string.IsNullOrEmpty(buildUtilityOpions.ContentFileTypes) || string.IsNullOrEmpty(buildUtilityOpions.RootFolder) || string.IsNullOrEmpty(buildUtilityOpions.TartgetFileTypes) || string.IsNullOrEmpty(buildUtilityOpions.Version)) { Console.WriteLine("BuildUtility -> Please pass all mandatory parameters."); System.Environment.Exit(1); } else { using (var buildUtility = new BuildUtility()) { if (buildUtility.VersionStaticContentUrl(buildUtilityOpions)) { Console.WriteLine("BuildUtility -> Task completed successfully."); } else { Console.WriteLine("BuildUtility -> Task completed with errors! Please check the log file for more deails."); } } System.Environment.Exit(0); } }