Explorar el Código

add support for prefix before header, allow comments in header json

tags/2.0.1
Jonathan Cobb hace 5 años
padre
commit
523fa176e7
Se han modificado 3 ficheros con 21 adiciones y 4 borrados
  1. +4
    -1
      src/main/java/org/cobbzilla/util/main/FileHeader.java
  2. +15
    -2
      src/main/java/org/cobbzilla/util/main/FileHeaderMain.java
  3. +2
    -1
      src/main/java/org/cobbzilla/util/main/FileHeaderOptions.java

+ 4
- 1
src/main/java/org/cobbzilla/util/main/FileHeader.java Ver fichero

@@ -10,7 +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 @Setter private String prefix;
public boolean hasPrefix () { return prefix != null; }
@Getter(lazy=true) private final Pattern prefixPattern = Pattern.compile(getPrefix()+"\n", Pattern.MULTILINE);

}

+ 15
- 2
src/main/java/org/cobbzilla/util/main/FileHeaderMain.java Ver fichero

@@ -24,12 +24,25 @@ public class FileHeaderMain extends BaseMain<FileHeaderOptions> {
if (header != null) {
String contents = toStringOrDie(file);
if (contents == null) contents = "";
final String prefix;
if (header.hasPrefix()) {
final Matcher prefixMatcher = header.getPrefixPattern().matcher(contents);
if (!prefixMatcher.find()) {
err("prefix not found ("+header.getPrefix().replace("\n", "\\n")+") in file: "+abs(file));
return;
}
prefix = contents.substring(0, prefixMatcher.start())
+ contents.substring(prefixMatcher.start(), prefixMatcher.end());
contents = contents.substring(prefixMatcher.end());
} else {
prefix = "";
}
final Matcher matcher = header.getPattern().matcher(contents);
if (matcher.find()) {
contents = contents.substring(0, matcher.start())
contents = prefix + contents.substring(0, matcher.start())
+ header.getHeader() + "\n" + contents.substring(matcher.end());
} else {
contents = header.getHeader() + "\n" + contents;
contents = prefix + header.getHeader() + "\n" + contents;
}
out(abs(file));
toFileOrDie(file, contents);


+ 2
- 1
src/main/java/org/cobbzilla/util/main/FileHeaderOptions.java Ver fichero

@@ -13,6 +13,7 @@ import java.util.Map;
import java.util.stream.Collectors;

import static java.util.function.Function.identity;
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;

@@ -37,7 +38,7 @@ public class FileHeaderOptions extends BaseMainOptions {
} else {
input = inStream(new File(headersJson));
}
final FileHeader[] headers = json(IOUtils.toString(input, UTF8cs), FileHeader[].class);
final FileHeader[] headers = json(IOUtils.toString(input, UTF8cs), FileHeader[].class, FULL_MAPPER_ALLOW_COMMENTS);
return Arrays.stream(headers).collect(Collectors.toMap(FileHeader::getExt, identity()));
}



Cargando…
Cancelar
Guardar