buildSrc/src/main/java/com/uber/okbuck/OkBuckGradlePlugin.java [339:377]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  private void writeExportedFileRules(Project rootBuckProject, OkBuckExtension okBuckExtension) {
    Set<String> currentProjectPaths =
        okBuckExtension.buckProjects.stream()
            .filter(project -> ProjectUtil.getType(project) != ProjectType.UNKNOWN)
            .map(
                project ->
                    rootBuckProject
                        .getProjectDir()
                        .toPath()
                        .relativize(project.getProjectDir().toPath())
                        .toString())
            .collect(MoreCollectors.toImmutableSet());
    Map<String, Set<Rule>> pathToRules = new HashMap<>();
    for (String exportedPath : exportedPaths) {
      File exportedFile = rootBuckProject.file(exportedPath);
      String containingPath =
          FileUtil.getRelativePath(rootBuckProject.getProjectDir(), exportedFile.getParentFile());
      Set<Rule> rules = pathToRules.getOrDefault(containingPath, new HashSet<>());
      rules.add(new ExportFile().name(exportedFile.getName()));
      pathToRules.put(containingPath, rules);
    }
    for (Map.Entry<String, Set<Rule>> entry : pathToRules.entrySet()) {
      File buckFile =
          rootBuckProject
              .getRootDir()
              .toPath()
              .resolve(entry.getKey())
              .resolve(okBuckExtension.buildFileName)
              .toFile();
      try (OutputStream os =
          new FileOutputStream(buckFile, currentProjectPaths.contains(entry.getKey()))) {
        entry.getValue().stream()
            .sorted((rule1, rule2) -> rule1.name().compareToIgnoreCase(rule2.name()))
            .forEach(rule -> rule.render(os));
      } catch (IOException e) {
        throw new IllegalStateException(e);
      }
    }
  }
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



plugin/src/main/java/com/uber/okbuck/OkBuckGradlePlugin.java [339:377]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  private void writeExportedFileRules(Project rootBuckProject, OkBuckExtension okBuckExtension) {
    Set<String> currentProjectPaths =
        okBuckExtension.buckProjects.stream()
            .filter(project -> ProjectUtil.getType(project) != ProjectType.UNKNOWN)
            .map(
                project ->
                    rootBuckProject
                        .getProjectDir()
                        .toPath()
                        .relativize(project.getProjectDir().toPath())
                        .toString())
            .collect(MoreCollectors.toImmutableSet());
    Map<String, Set<Rule>> pathToRules = new HashMap<>();
    for (String exportedPath : exportedPaths) {
      File exportedFile = rootBuckProject.file(exportedPath);
      String containingPath =
          FileUtil.getRelativePath(rootBuckProject.getProjectDir(), exportedFile.getParentFile());
      Set<Rule> rules = pathToRules.getOrDefault(containingPath, new HashSet<>());
      rules.add(new ExportFile().name(exportedFile.getName()));
      pathToRules.put(containingPath, rules);
    }
    for (Map.Entry<String, Set<Rule>> entry : pathToRules.entrySet()) {
      File buckFile =
          rootBuckProject
              .getRootDir()
              .toPath()
              .resolve(entry.getKey())
              .resolve(okBuckExtension.buildFileName)
              .toFile();
      try (OutputStream os =
          new FileOutputStream(buckFile, currentProjectPaths.contains(entry.getKey()))) {
        entry.getValue().stream()
            .sorted((rule1, rule2) -> rule1.name().compareToIgnoreCase(rule2.name()))
            .forEach(rule -> rule.render(os));
      } catch (IOException e) {
        throw new IllegalStateException(e);
      }
    }
  }
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



