浏览代码

allow processing of files with no extension

tags/2.0.1
Jonathan Cobb 5 年前
父节点
当前提交
c5858d30bf
共有 1 个文件被更改,包括 24 次插入26 次删除
  1. +24
    -26
      src/main/java/org/cobbzilla/util/main/FileHeaderMain.java

+ 24
- 26
src/main/java/org/cobbzilla/util/main/FileHeaderMain.java 查看文件

@@ -19,34 +19,32 @@ public class FileHeaderMain extends BaseMain<FileHeaderOptions> {
.withDir(opts.getDir())
.withVisitor(file -> {
final String ext = FileUtil.extension(file);
if (ext.startsWith(".")) {
final FileHeader header = headers.get(ext.substring(1));
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 FileHeader header = headers.get(ext.length() > 0 ? ext.substring(1) : ext);
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;
}
final Matcher matcher = header.getPattern().matcher(contents);
if (matcher.find()) {
contents = prefix + contents.substring(0, matcher.start())
+ header.getHeader() + "\n" + contents.substring(matcher.end());
} else {
contents = prefix + header.getHeader() + "\n" + contents;
}
out(abs(file));
toFileOrDie(file, contents);
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 = prefix + contents.substring(0, matcher.start())
+ header.getHeader() + "\n" + contents.substring(matcher.end());
} else {
contents = prefix + header.getHeader() + "\n" + contents;
}
out(abs(file));
toFileOrDie(file, contents);
}
}).walk();
}


正在加载...
取消
保存