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); }
/// <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); }
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); }
/// <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); }