Пример #1
0
        static void Main(string[] args)
        {
            var logger = new Logger();

            logger.Log("Started");

            var bundler = new Bundler(logger);

            for (var i = 0; i < args.Length; i++)
            {
                switch (args[i].Trim().ToLower())
                {
                case "/source":
                    if (i < args.Length - 1)
                    {
                        bundler.Source = args[i + 1];
                    }
                    break;

                case "/target":
                    if (i < args.Length - 1)
                    {
                        bundler.Target = args[i + 1];
                    }
                    break;

                case "/recurse":
                    if (i < args.Length - 1)
                    {
                        bool.TryParse(args[i + 1], out var recurse);
                        bundler.RecurseReferences = recurse;
                    }
                    break;

                case "/use-source":
                    if (i < args.Length - 1)
                    {
                        bool.TryParse(args[i + 1], out var alwaysUseSource);
                        bundler.AlwaysUseSource = alwaysUseSource;
                    }
                    break;

                case "/only-merge-used":
                    if (i < args.Length - 1)
                    {
                        bool.TryParse(args[i + 1], out var onlyMergeUsed);
                        bundler.OnlyMergeUsed = onlyMergeUsed;
                    }
                    break;

                case "/?":
                case "/h":
                case "/hlp":
                case "/help":
                    DisplayHelp(logger);
                    Console.ReadLine();
                    break;
                }
            }

            if (String.IsNullOrWhiteSpace(bundler.Source) || String.IsNullOrWhiteSpace(bundler.Target))
            {
                return;
            }

            if (bundler.Source.Equals(bundler.Target, StringComparison.InvariantCultureIgnoreCase))
            {
                throw new ArgumentException("Source and Target cannot be the same file.");
            }

            bundler.TryGetFileInfo(bundler.Source, out var sourceInfo);
            bundler.TryGetExcelPackage(sourceInfo, out var package);
            bundler.TryBundleProjects(ref package);

            var newFileName = Path.GetFileNameWithoutExtension(bundler.Source) + DateTime.Now.Ticks;
            var fi          = new FileInfo(bundler.Target);

            package.SaveAs(fi);
            Console.WriteLine($"File \"{fi.FullName}\" saved.");
            Console.ReadLine();
        }