Przeglądaj źródła

add excluded paths

tags/2.0.1
Jonathan Cobb 5 lat temu
rodzic
commit
33a9e0d000
3 zmienionych plików z 26 dodań i 2 usunięć
  1. +2
    -2
      src/main/java/org/cobbzilla/util/main/FileHeader.java
  2. +4
    -0
      src/main/java/org/cobbzilla/util/main/FileHeaderMain.java
  3. +20
    -0
      src/main/java/org/cobbzilla/util/main/FileHeaderOptions.java

+ 2
- 2
src/main/java/org/cobbzilla/util/main/FileHeader.java Wyświetl plik

@@ -10,10 +10,10 @@ public class FileHeader {
@Getter @Setter private String ext;
@Getter @Setter private String header;
@Getter @Setter private String regex;
@Getter(lazy=true) private final Pattern pattern = Pattern.compile(getRegex()+"\n", Pattern.MULTILINE);
@Getter(lazy=true) private final Pattern pattern = Pattern.compile(getRegex()+"\n", Pattern.MULTILINE | Pattern.DOTALL);

@Getter @Setter private String prefix;
public boolean hasPrefix () { return prefix != null; }
@Getter(lazy=true) private final Pattern prefixPattern = Pattern.compile(getPrefix()+"\n", Pattern.MULTILINE);
@Getter(lazy=true) private final Pattern prefixPattern = Pattern.compile(getPrefix()+"\n", Pattern.MULTILINE | Pattern.DOTALL);

}

+ 4
- 0
src/main/java/org/cobbzilla/util/main/FileHeaderMain.java Wyświetl plik

@@ -18,6 +18,10 @@ public class FileHeaderMain extends BaseMain<FileHeaderOptions> {
new FilesystemWalker()
.withDir(opts.getDir())
.withVisitor(file -> {
if (opts.exclude(file)) {
err("excluding: "+abs(file));
return;
}
final String ext = FileUtil.extension(file);
final FileHeader header = headers.get(ext.length() > 0 ? ext.substring(1) : ext);
if (header != null) {


+ 20
- 0
src/main/java/org/cobbzilla/util/main/FileHeaderOptions.java Wyświetl plik

@@ -9,10 +9,14 @@ import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;

import static java.util.function.Function.identity;
import static org.cobbzilla.util.daemon.ZillaRuntime.empty;
import static org.cobbzilla.util.io.FileUtil.abs;
import static org.cobbzilla.util.json.JsonUtil.FULL_MAPPER_ALLOW_COMMENTS;
import static org.cobbzilla.util.json.JsonUtil.json;
import static org.cobbzilla.util.string.StringUtil.UTF8cs;
@@ -42,4 +46,20 @@ public class FileHeaderOptions extends BaseMainOptions {
return Arrays.stream(headers).collect(Collectors.toMap(FileHeader::getExt, identity()));
}

public static final String USAGE_EXCLUDE_PATHS = "Paths (or path parts) to exclude, separated by commas";
public static final String OPT_EXCLUDE_PATHS = "-e";
public static final String LONGOPT_EXCLUDE_PATHS = "--exclude-paths";
@Option(name=OPT_EXCLUDE_PATHS, aliases=LONGOPT_EXCLUDE_PATHS, usage=USAGE_EXCLUDE_PATHS)
@Getter @Setter private String excludePaths;

@Getter(lazy=true) private final List<String> excludePathPatterns = initExcludePatterns();

private List<String> initExcludePatterns() {
if (empty(excludePaths)) return Collections.emptyList();
final String[] parts = excludePaths.split(",");
return Arrays.stream(parts).collect(Collectors.toList());
}

public boolean exclude(File f) { return getExcludePathPatterns().stream().anyMatch(p -> abs(f).contains(p)); }

}

Ładowanie…
Anuluj
Zapisz