in src/main/java/org/apache/sling/feature/extension/unpack/impl/converter/Converter.java [58:105]
public static void main(String[] args) throws Exception {
if (args.length > 4) {
ArtifactId id = ArtifactId.fromMvnId(args[0]);
String name = args[1];
if (name == null || name.trim().isEmpty()) {
throw new IllegalStateException("Invalid extension name: " + name);
}
File featureFile = new File(args[2]);
File featureDir = featureFile.getParentFile();
if (!featureDir.isDirectory() && !featureDir.mkdirs()) {
throw new IOException("Unable to create target dir: " + featureDir);
}
File base = new File(args[3]);
if (!base.isDirectory() && !base.mkdirs()) {
throw new IOException("Unable to create base dir: " + base);
}
String key = null;
String value = null;
List<String> urls = new ArrayList<>();
for (int i = 4; i < args.length;i++) {
if (args[i].startsWith("key=")) {
key = args[i].substring("key=".length());
} else if (args[i].startsWith("value=")) {
value = args[i].substring("value=".length());
}
else{
urls.addAll(Arrays.asList(args[i].split(" ")).stream().map(String::trim).filter(((Predicate<String>)String::isEmpty).negate()).collect(Collectors.toList()));
}
}
Predicate<InputStream> check;
if (key != null && !key.trim().isEmpty() && value != null && !value.trim().isEmpty()) {
final String keyF = key;
final String valueF = value;
check = (stream) -> Unpack.handles(keyF, valueF, stream);
} else {
check = inputStream -> true;
}
List<String> unhandled = convert(id, name, featureFile, base, check, urls);
System.out.println(String.join(" ", unhandled));
}
}