Exemplo n.º 1
0
 private IEnumerable <ExtractMetadataInputModel> GetInputModels(MetadataJsonConfig configs)
 {
     foreach (var config in configs)
     {
         config.Raw   |= configs.Raw;
         config.Force |= configs.Force;
         yield return(ConvertToInputModel(config));
     }
 }
Exemplo n.º 2
0
 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);
 }
Exemplo n.º 3
0
        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);
            }
        }
Exemplo n.º 4
0
 public MetadataCommand(MetadataJsonConfig config, CommandContext context)
 {
     Config      = MergeConfig(config, context);
     InputModels = GetInputModels(Config);
 }