Exemple #1
0
 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);
            }
Exemple #4
0
        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;
        }
Exemple #5
0
 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);
        }
 }
Exemple #6
0
 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;
        }
Exemple #8
0
        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;
            }
        }
Exemple #9
0
 public static void ShowUsage()
 {
     string helpText = new CommandLineOptions().ToString();
     string usage = string.Format("{0}\r\n{1}", AppDomain.CurrentDomain.FriendlyName, helpText);
     Console.WriteLine(usage);
 }
Exemple #10
0
 public CompressorBase(CommandLineOptions cmdLineOptions)
 {
     _cmdLineOptions = cmdLineOptions;
 }