private Stream nonEqualFiles()

in plugins/check-in-generated/src/main/java/co/elastic/gradle/cig/CompareFileMapTask.java [105:136]


    private Stream<Path> nonEqualFiles(Path file1, Path file2) {
        if (!Files.exists(file1) || !Files.exists(file2)) {
            return Stream.of(file2);
        }
        try {
            if (Files.isDirectory(file1)) {
                if (Files.isDirectory(file2)) {
                    return Files.walk(file1)
                            .filter(each -> !each.equals(file1))
                            .flatMap(each -> nonEqualFiles(
                                    each,
                                    file2.resolve(file1.relativize(each))
                            ));

                } else {
                    return Stream.of(file2);
                }
            } else {
                if (Files.isDirectory(file2)) {
                    return Stream.of(file2);
                } else {
                    if (FileUtils.contentEquals(file1.toFile(), file2.toFile())) {
                        return Stream.of();
                    } else {
                        return Stream.of(file2);
                    }
                }
            }
        } catch (IOException e) {
            throw new UncheckedIOException(e);
        }
    }