private MetadataJsonConfig ParseOptions(MetadataCommandOptions options) { string configFile; if (TryGetJsonConfig(options.Projects, out configFile)) { var config = CommandUtility.GetConfig<MetadataConfig>(configFile).Item; if (config == null) throw new DocumentException($"Unable to find metadata subcommand config in file '{configFile}'."); config.BaseDirectory = Path.GetDirectoryName(configFile); config.OutputFolder = options.OutputFolder; foreach (var item in config) { item.Raw |= options.PreserveRawInlineComments; item.Force |= options.ForceRebuild; item.ShouldSkipMarkup |= options.ShouldSkipMarkup; item.FilterConfigFile = options.FilterConfigFile ?? item.FilterConfigFile; } return config; } else { var config = new MetadataJsonConfig(); config.Add(new MetadataJsonItemConfig { Force = options.ForceRebuild, ShouldSkipMarkup = options.ShouldSkipMarkup, Destination = options.OutputFolder, Raw = options.PreserveRawInlineComments, Source = new FileMapping(new FileMappingItem(options.Projects.ToArray())) { Expanded = true }, FilterConfigFile = options.FilterConfigFile }); return config; } }
private MetadataJsonConfig ParseOptions(MetadataCommandOptions options) { string configFile; if (TryGetJsonConfig(options.Projects, out configFile)) { var config = CommandUtility.GetConfig<MetadataConfig>(configFile).Item; if (config == null) throw new DocumentException($"Unable to find metadata subcommand config in file '{configFile}'."); config.BaseDirectory = Path.GetDirectoryName(configFile); config.OutputFolder = options.OutputFolder; foreach (var item in config) { item.Raw |= options.PreserveRawInlineComments; item.Force |= options.ForceRebuild; item.FilterConfigFile = options.FilterConfigFile ?? item.FilterConfigFile; } return config; } else { var config = new MetadataJsonConfig(); config.Add(new MetadataJsonItemConfig { Force = options.ForceRebuild, Destination = options.OutputFolder, Raw = options.PreserveRawInlineComments, Source = new FileMapping(new FileMappingItem(options.Projects.ToArray())) { Expanded = true }, FilterConfigFile = options.FilterConfigFile }); return config; } }
private IEnumerable <ExtractMetadataInputModel> GetInputModels(MetadataJsonConfig configs) { foreach (var config in configs) { config.Raw |= configs.Raw; config.Force |= configs.Force; yield return(ConvertToInputModel(config)); } }
private IEnumerable<ExtractMetadataInputModel> GetInputModels(MetadataJsonConfig configs) { foreach (var config in configs) { config.Raw |= configs.Raw; config.Force |= configs.Force; yield return ConvertToInputModel(config); } }
private IEnumerable<Microsoft.DocAsCode.Metadata.ManagedReference.ExtractMetadataInputModel> GetInputModels(MetadataJsonConfig configs) { foreach (var config in configs) { config.Raw |= configs.Raw; config.Force |= configs.Force; yield return ConvertToInputModel(config); } }
private MetadataJsonConfig ParseOptions(MetadataCommandOptions options, out string baseDirectory, out string outputFolder) { MetadataJsonConfig config; baseDirectory = null; if (TryGetJsonConfig(options.Projects, out string configFile)) { config = CommandUtility.GetConfig <MetadataConfig>(configFile).Item; if (config == null) { throw new DocumentException($"Unable to find metadata subcommand config in file '{configFile}'."); } baseDirectory = Path.GetDirectoryName(configFile); } else { config = new MetadataJsonConfig { new MetadataJsonItemConfig { Destination = options.OutputFolder, Source = new FileMapping(new FileMappingItem(options.Projects.ToArray())) { Expanded = true } } }; } var msbuildProperties = ResolveMSBuildProperties(options); foreach (var item in config) { item.Force |= options.ForceRebuild; item.Raw |= options.PreserveRawInlineComments; item.ShouldSkipMarkup |= options.ShouldSkipMarkup; item.DisableGitFeatures |= options.DisableGitFeatures; item.DisableDefaultFilter |= options.DisableDefaultFilter; if (!string.IsNullOrEmpty(options.FilterConfigFile)) { item.FilterConfigFile = Path.GetFullPath(options.FilterConfigFile); } if (!string.IsNullOrEmpty(options.GlobalNamespaceId)) { item.GlobalNamespaceId = options.GlobalNamespaceId; } if (item.MSBuildProperties == null) { item.MSBuildProperties = msbuildProperties; } else { // Command line properties overwrites the one defined in docfx.json foreach (var pair in msbuildProperties) { item.MSBuildProperties[pair.Key] = pair.Value; } } } outputFolder = options.OutputFolder; return(config); }
public MetadataCommand(MetadataCommandOptions options) { Config = ParseOptions(options, out BaseDirectory, out OutputFolder); }
private MetadataJsonConfig MergeConfig(MetadataJsonConfig config, CommandContext context) { config.BaseDirectory = context?.BaseDirectory ?? config.BaseDirectory; if (context?.SharedOptions != null) { config.OutputFolder = context.SharedOptions.RootOutputFolder ?? config.OutputFolder; config.Force |= context.SharedOptions.ForceRebuild; config.Raw |= context.SharedOptions.PreserveRawInlineComments; } return config; }
public MetadataCommand(MetadataJsonConfig config, CommandContext context) { Config = MergeConfig(config, context); InputModels = GetInputModels(Config); }
private static MetadataJsonConfig GetConfigFromOptions(MetadataCommandOptions options) { string jsonConfig; // Glob pattern is not allowed for command line options if (TryGetJsonConfig(options.Projects, out jsonConfig)) { var command = (MetadataCommand)CommandFactory.ReadConfig(jsonConfig, null).Commands.FirstOrDefault(s => s is MetadataCommand); if (command == null) throw new DocumentException($"Unable to find {CommandType.Build} subcommand config in file '{Constants.ConfigFileName}'."); var config = command.Config; config.BaseDirectory = Path.GetDirectoryName(jsonConfig); config.OutputFolder = options.OutputFolder; foreach (var item in config) { item.Raw |= options.PreserveRawInlineComments; item.Force |= options.ForceRebuild; } return config; } else { var config = new MetadataJsonConfig(); config.Add(new MetadataJsonItemConfig { Force = options.ForceRebuild, Destination = options.OutputFolder, Raw = options.PreserveRawInlineComments, Source = new FileMapping(new FileMappingItem() { Files = new FileItems(options.Projects) }) { Expanded = true } }); return config; } }