コード例 #1
0
        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;
            }
        }
コード例 #2
0
        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);
            }
        }