Пример #1
0
 @SafeVarargs
 @VisibleForTesting
 static BuckConfig createFromReaders(
     Map<Path, Reader> readers,
     ProjectFilesystem projectFilesystem,
     Platform platform,
     ImmutableMap<String, String> environment,
     ImmutableMap<String, ImmutableMap<String, String>>... configOverrides)
     throws IOException {
   ImmutableList.Builder<ImmutableMap<String, ImmutableMap<String, String>>> builder =
       ImmutableList.builder();
   for (Map.Entry<Path, Reader> entry : readers.entrySet()) {
     Path filePath = entry.getKey();
     Reader reader = entry.getValue();
     ImmutableMap<String, ImmutableMap<String, String>> parsedConfiguration = Inis.read(reader);
     LOG.debug("Loaded a configuration file %s: %s", filePath, parsedConfiguration);
     builder.add(parsedConfiguration);
   }
   for (ImmutableMap<String, ImmutableMap<String, String>> configOverride : configOverrides) {
     LOG.debug("Adding configuration overrides: %s", configOverride);
     builder.add(configOverride);
   }
   Config config = new Config(builder.build());
   return new BuckConfig(config, projectFilesystem, platform, environment);
 }
Пример #2
0
  public static Config createDefaultConfig(
      Path root, ImmutableMap<String, ImmutableMap<String, String>> configOverrides)
      throws IOException {
    ImmutableList.Builder<Path> configFileBuilder = ImmutableList.builder();

    configFileBuilder.addAll(listFiles(GLOBAL_BUCK_CONFIG_DIRECTORY_PATH));
    if (Files.isRegularFile(GLOBAL_BUCK_CONFIG_FILE_PATH)) {
      configFileBuilder.add(GLOBAL_BUCK_CONFIG_FILE_PATH);
    }

    Path homeDirectory = Paths.get(System.getProperty("user.home"));
    Path userConfigDir = homeDirectory.resolve(DEFAULT_BUCK_CONFIG_DIRECTORY_NAME);
    configFileBuilder.addAll(listFiles(userConfigDir));
    Path userConfigFile = homeDirectory.resolve(DEFAULT_BUCK_CONFIG_FILE_NAME);
    if (Files.isRegularFile(userConfigFile)) {
      configFileBuilder.add(userConfigFile);
    }

    Path configFile = root.resolve(DEFAULT_BUCK_CONFIG_FILE_NAME);
    if (Files.isRegularFile(configFile)) {
      configFileBuilder.add(configFile);
    }
    Path overrideConfigFile = root.resolve(DEFAULT_BUCK_CONFIG_OVERRIDE_FILE_NAME);
    if (Files.isRegularFile(overrideConfigFile)) {
      configFileBuilder.add(overrideConfigFile);
    }

    ImmutableList<Path> configFiles = configFileBuilder.build();

    ImmutableList.Builder<ImmutableMap<String, ImmutableMap<String, String>>> builder =
        ImmutableList.builder();
    for (Path file : configFiles) {
      try (Reader reader = Files.newBufferedReader(file, StandardCharsets.UTF_8)) {
        ImmutableMap<String, ImmutableMap<String, String>> parsedConfiguration = Inis.read(reader);
        LOG.debug("Loaded a configuration file %s: %s", file, parsedConfiguration);
        builder.add(parsedConfiguration);
      }
    }
    LOG.debug("Adding configuration overrides: %s", configOverrides);
    builder.add(configOverrides);
    return new Config(builder.build());
  }