public MinifierManager(CommandLineOptions cmdLineOptions) : base(cmdLineOptions) { _minifier = new Minifier(); SetupDependencies(); StartListener(); }
public ImageCompressorManager(CommandLineOptions cmdLineOptions) : base(cmdLineOptions) { _imageCompressor = new ImageCompressor(); SetupDependencies(); StartListener(); _imageCompressor.Finished += WriteToLog; }
public void GeneratesHelpText() { var cmdLineOptions = new CommandLineOptions(); string helpText = cmdLineOptions.ToString(); int numProperties = cmdLineOptions.ListAllCommandLineArgs().Count(); int numLinesOfHelpText = helpText.Count(c => c == '\n') - 1; //subtract 1 to accomodate for the header/title Assert.IsFalse(string.IsNullOrEmpty(helpText)); Assert.AreEqual(numProperties, numLinesOfHelpText); }
private static void StartAsConsole(string[] args) { cmdLineOptions = new CommandArgsParser().BuildCommandLineOptions(args); cmdLineOptions.FileExtensionsToCompress = _fileExtentionsToCompress; // cmdLineOptions.ItemsToProcessDirectory = @"C:\Users\Phil\Desktop\resize"; if (cmdLineOptions.DisplayHelp || string.IsNullOrEmpty(cmdLineOptions.ItemsToProcessDirectory)) { CompressorBase.ShowUsage(); Console.ReadLine(); return; } RunCompressor(); return; }
private static void RunMinifier(CommandLineOptions cmdLineOptions) { Console.WriteLine("Monitoring dir " + cmdLineOptions.ItemsToProcessDirectory); var minMgr = new MinifierManager(cmdLineOptions); minMgr.Run(); if (cmdLineOptions.StartListener) { Console.WriteLine("Press Enter to quit at any time."); do { while (!Console.KeyAvailable) { System.Threading.Thread.Sleep(1000); minMgr.ProcessQueue(); } } while (Console.ReadKey(intercept: true).Key != ConsoleKey.Enter); } }
private static void StartAsAzureJob() { System.Diagnostics.Trace.TraceInformation("TextMin:StartAsAzureJob"); try { CommandLineOptions cmdLineOptions = new CommandLineOptions(); cmdLineOptions.ItemsToProcessDirectory = Environment.GetEnvironmentVariable("AZURE_MINIFIER_PATH") ?? @"D:\home\site\wwwroot\"; cmdLineOptions.FileExtensionsToCompress = _fileExtentionsToCompress; cmdLineOptions.OptimizerCacheFile = Path.Combine(cmdLineOptions.ItemsToProcessDirectory, @"app_data\TextMinifierHashTable.xml"); //cmdLineOptions.ItemsToProcessDirectory = @"C:\Users\madsk\Documents\GitHub\AzureJobs\Azurejobs.Web\ImageOptimization\img"; RunMinifier(cmdLineOptions); } catch (Exception ex) { System.Diagnostics.Trace.TraceError(ex.ToString()); throw ex; } }
/// <summary> /// Build an entity that holds all the options and config from the command line. /// </summary> /// <param name="args">The arg list from the user.</param> /// <returns>CommandLineOptions object populated with the user's config.</returns> public CommandLineOptions BuildCommandLineOptions(string[] args) { IDictionary<string, string> argsDict = ParseArgs(args); ICollection<string> keys = argsDict.Keys; CommandLineOptions options = new CommandLineOptions(); options.Name = GetFirstMatchInDictionaryOrEmpty(argsDict, GetAliasesOnProperty("Name")); options.Color = GetFirstMatchInDictionaryOrEmpty(argsDict, GetAliasesOnProperty("Color")); options.ItemsToProcessDirectory = GetFirstMatchInDictionaryOrEmpty(argsDict, GetAliasesOnProperty("ItemsToProcessDirectory")); options.OptimizerCacheFile = GetFirstMatchInDictionaryOrEmpty(argsDict, GetAliasesOnProperty("OptimizerCacheFile")); options.DisplayHelp = keys.Any(key => GetAliasesOnProperty("DisplayHelp").Contains(key)); options.StartListener = keys.Any(key => GetAliasesOnProperty("StartListener").Contains(key)); options.SuppressCsvReport = keys.Any(key => GetAliasesOnProperty("SuppressCsvReport").Contains(key)); options.ShouldForceOptimize = keys.Any(key => GetAliasesOnProperty("ShouldForceOptimize").Contains(key)); return options; }
private static void StartAsAzureJob() { try { cmdLineOptions = new CommandLineOptions(); cmdLineOptions.ItemsToProcessDirectory = Environment.GetEnvironmentVariable("AZURE_IMAGE_OPTIMIZER_PATH") ?? @"D:\home\site\wwwroot\"; cmdLineOptions.FileExtensionsToCompress = new string[] { "*.png", "*.jpg", "*.jpeg", "*.gif" }; cmdLineOptions.OptimizerCacheFile = Path.Combine(cmdLineOptions.ItemsToProcessDirectory, @"app_data\ImageOptimizerHashTable.xml"); //cmdLineOptions.ItemsToProcessDirectory = @"C:\Users\madsk\Documents\GitHub\AzureJobs\Azurejobs.Web\ImageOptimization\img"; var imgCompressorMgr = new ImageCompressorManager(cmdLineOptions); imgCompressorMgr.Run(); Timer timer = new Timer((o) => imgCompressorMgr.ProcessQueue()); timer.Change(1000, 5000); while (true) { Thread.Sleep(2000); } } catch (Exception ex) { System.Diagnostics.Trace.TraceError(ex.ToString()); throw ex; } }
public static void ShowUsage() { string helpText = new CommandLineOptions().ToString(); string usage = string.Format("{0}\r\n{1}", AppDomain.CurrentDomain.FriendlyName, helpText); Console.WriteLine(usage); }
public CompressorBase(CommandLineOptions cmdLineOptions) { _cmdLineOptions = cmdLineOptions; }