// // Copyright (c) Shay Jacoby - www.s-online.co.il. All rights reserved. // // // JavaScript + Css Minifier // namespace ShopEngine.Tools { #region Using directives using System; using System.IO; using Yahoo.Yui.Compressor; #endregion /// /// Js + Css Minifier, Assembly taken from: /// http://yuicompressor.codeplex.com/ /// public static class Minifier { #region Constants /// /// Debug file /// private const string Debug = "debug"; /// /// Minified file /// private const string Min = "min"; #endregion Constants /// /// Main method. /// /// The arguments. public static void Main(string[] args) { if (args.Length == 0) { Console.WriteLine("invalid arguments, no path was specified."); return; } var di = new DirectoryInfo(args[0]); var files = di.GetFiles(string.Format("*.{0}.js", Debug), SearchOption.AllDirectories); var i = 0; foreach (var fi in files) { i++; string src = fi.FullName.ToLower(); string srcText = File.ReadAllText(src); string dst = src.Replace(Debug, Min); string dstText = !string.IsNullOrEmpty(srcText) ? JavaScriptCompressor.Compress(srcText, false) : string.Empty; using (var streamWriter = new StreamWriter(dst)) { streamWriter.Write(dstText); } } Console.WriteLine("{0} Js Files minified.", i); // Check for Css folder if (args.Length > 1) { di = new DirectoryInfo(args[1]); files = di.GetFiles(string.Format("*.{0}.css", Debug), SearchOption.AllDirectories); i = 0; foreach (var fi in files) { i++; string src = fi.FullName.ToLower(); string srcText = File.ReadAllText(src); string dst = src.Replace(Debug, Min); string dstText = !string.IsNullOrEmpty(srcText) ? CssCompressor.Compress(srcText) : string.Empty; using (var streamWriter = new StreamWriter(dst)) { streamWriter.Write(dstText); } } Console.WriteLine("{0} Css Files minified.", i); } } } }