ToPresentationAndSettingsInfo(this ProgramArgs args)
        {
            traceSource?.TraceVerbose($"setting conventional {MarkdownPresentationDirectories.DirectoryNamePresentationShell} directory...");
            var presentationShellInfo = new DirectoryInfo(args.GetArgValue(ProgramArgs.BasePath));

            presentationShellInfo.VerifyDirectory(MarkdownPresentationDirectories.DirectoryNamePresentationShell);

            traceSource?.TraceVerbose($"setting conventional {nameof(MarkdownPresentationDirectories)} parent directory...");
            var presentationInfo = presentationShellInfo.Parent;

            presentationInfo.HasAllConventionalMarkdownPresentationDirectories();

            traceSource?.TraceVerbose($"getting settings file...");
            var settingsInfo = presentationShellInfo.FindFile(args.GetArgValue(ProgramArgs.SettingsFile));

            return(presentationInfo, settingsInfo);
        }
Exemplo n.º 2
0
        /// <summary>
        /// Gets the conventional settings file path.
        /// </summary>
        /// <param name="args">The arguments.</param>
        /// <returns></returns>
        public static string GetSettingsFilePath(this ProgramArgs args)
        {
            if (!args.HasArg(ProgramArgs.SettingsFile, requiresValue: false))
            {
                return(null);
            }
            var settingsFileName = args.GetArgValue(ProgramArgs.SettingsFile);

            return(settingsFileName);
        }
Exemplo n.º 3
0
        public static IConfigurationBuilder WithSettingsJsonFile(this IConfigurationBuilder builder, string basePath, string settingsFileName)
        {
            if (builder == null)
            {
                return(null);
            }

            var args = new ProgramArgs(Environment.GetCommandLineArgs());

            if (string.IsNullOrEmpty(settingsFileName))
            {
                settingsFileName = defaultSettingsFileName;
            }

            var isBasePathRequired = args.HasArg(ProgramArgs.BasePathRequired, requiresValue: false);

            if (args.HasArg(ProgramArgs.BasePath, isBasePathRequired))
            {
                basePath = args.GetArgValue(ProgramArgs.BasePath);
                if (!Directory.Exists(basePath))
                {
                    throw new ArgumentException($"{basePath} does not exist.");
                }
                builder.SetBasePath(basePath);

                if (args.HasArg(ProgramArgs.SettingsFile, requiresValue: false))
                {
                    settingsFileName = args.GetArgValue(ProgramArgs.SettingsFile);
                    builder.AddJsonFile(settingsFileName, optional: true, reloadOnChange: true);
                }
            }
            else if (!string.IsNullOrEmpty(basePath))
            {
                if (!Directory.Exists(basePath))
                {
                    throw new ArgumentException($"{basePath} does not exist.");
                }
                builder.SetBasePath(basePath);
                builder.AddJsonFile(settingsFileName, optional: true, reloadOnChange: true);
            }

            return(builder);
        }
Exemplo n.º 4
0
        /// <summary>
        /// Gets the conventional base-path value.
        /// </summary>
        /// <param name="args">The arguments.</param>
        /// <returns></returns>
        /// <exception cref="ArgumentException"></exception>
        public static string GetBasePathValue(this ProgramArgs args)
        {
            var isBasePathRequired = args.HasArg(ProgramArgs.BasePathRequired, requiresValue: false);

            if (!args.HasArg(ProgramArgs.BasePath, isBasePathRequired))
            {
                return(null);
            }

            var basePath = args.GetArgValue(ProgramArgs.BasePath);

            if (!Directory.Exists(basePath))
            {
                throw new ArgumentException($"{basePath} does not exist.");
            }
            return(basePath);
        }