1 package org.apache.rat.mp.util.ignore;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import nl.basjes.gitignore.GitIgnoreFileSet;
23 import org.apache.maven.plugin.logging.Log;
24
25 import java.io.File;
26 import java.util.Optional;
27
28 public class GitIgnoreMatcher implements IgnoreMatcher {
29
30 private final GitIgnoreFileSet gitIgnoreFileSet;
31
32 public GitIgnoreMatcher(final Log log, final File projectBaseDir) {
33 log.debug("Recursively loading .gitignore files in " + projectBaseDir);
34
35 gitIgnoreFileSet = new GitIgnoreFileSet(projectBaseDir)
36 .assumeQueriesAreProjectRelative();
37 }
38
39 @Override
40 public boolean isEmpty() {
41 return gitIgnoreFileSet.isEmpty();
42 }
43
44 @Override
45 public Optional<Boolean> isIgnoredFile(String filename) {
46 Boolean isIgnoredFile = gitIgnoreFileSet.isIgnoredFile(filename);
47 if (isIgnoredFile == null) {
48 return Optional.empty();
49 }
50 return Optional.of(isIgnoredFile);
51 }
52
53 @Override
54 public String toString() {
55 return "Loaded .gitignore data:\n" + gitIgnoreFileSet;
56 }
57 }