Exemple #1
0
        static void Main(string[] args)
        {
            Logger.LogMessage($"Page Generator started with args: {string.Join(", ", args)}");
            Logger.LogMessage($"Starting in: {Environment.CurrentDirectory}");

            var root = BuildConfiguration(args);

            var env = root.GetSection(k_EnvironmentPath).Value;

            if (!string.IsNullOrEmpty(env))
            {
                Environment.CurrentDirectory = env;
            }

            var source      = root.GetSection(k_SourcePathArg).Value;
            var destination = root.GetSection(k_DestinationPathArg).Value;
            var libraries   = root.GetSection(k_LibrariesPathArg).Value;

            var interactive = GetSectionFromLongOrShortVersion(root, k_InteractiveArg);
            var clean       = GetSectionFromLongOrShortVersion(root, k_CleanArg);
            var rebuild     = GetSectionFromLongOrShortVersion(root, k_RebuildArg);
            var build       = GetSectionFromLongOrShortVersion(root, k_BuildArg);
            var help        = GetSectionFromLongOrShortVersion(root, k_HelpArg);

            if (help)
            {
                PrintHelpMessage();
                return;
            }

            // Convert to absolute paths, since environment dir will be changed later
            var gen = new PageGenerator(new TagCollector())
            {
                SourceFolder      = string.IsNullOrEmpty(source) ? "" : Path.GetFullPath(source),
                DestinationFolder = string.IsNullOrEmpty(destination) ? "" : Path.GetFullPath(destination),
                LibrariesFolder   = string.IsNullOrEmpty(libraries) ? "" : Path.GetFullPath(libraries)
            };

            // Print current paths for easier debugging
            Console.WriteLine();
            Logger.LogMessage($"Source directory set to: {source} ('{gen.SourceFolder}')");
            Logger.LogMessage($"Destination directory set to: {destination} ('{gen.DestinationFolder}')");
            Logger.LogMessage($"Libraries directory set to: {libraries} ('{gen.LibrariesFolder}')");


            if (!Directory.Exists(gen.DestinationFolder))
            {
                Logger.LogError($"Destination directory not found: {gen.DestinationFolder}");
                gen.ReportErrors();
                return;
            }

            // Change environment current directory
            try
            {
                Environment.CurrentDirectory = gen.SourceFolder;
                Logger.LogMessage($"Current directory changed to: {Environment.CurrentDirectory}");
            }
            catch
            {
                Logger.LogError($"Source directory not found: {gen.SourceFolder}");
                gen.ReportErrors();
                return;
            }

            Console.WriteLine();
            RunGenerator(gen, interactive, clean, rebuild, build);

            gen.ReportErrors();
        }