static Runner create(final String name, final String... args) {
final Options options = Options.parse(
"r,recursive|f,format!|t,template!|d,directory!|m,merge|n,normalize|+", args);
final String template = options.getOptionArg("t", String.class);
String format = options.getOptionArg("f", String.class, ".html.gz");
format = format.startsWith(".") ? format : "." + format;
final boolean merge = options.hasOption("m");
final boolean normalize = options.hasOption("n");
File outputDir = options.getOptionArg("d", File.class);
if (outputDir == null) {
outputDir = new File(System.getProperty("user.dir"));
} else if (!outputDir.exists()) {
throw new IllegalArgumentException("Directory '" + outputDir + "' does not exist");
}
final boolean recursive = options.hasOption("r");
final List<File> inputFiles = Lists.newArrayList();
final List<File> outputFiles = Lists.newArrayList();
for (final File file : options.getPositionalArgs(File.class)) {
if (!file.exists()) {
throw new IllegalArgumentException("File/directory '" + file
+ "' does not exist");
}
addFiles(inputFiles, outputFiles, file, outputDir, format, recursive);
}
final RDFGenerator generator = RDFGenerator.builder()
.withProperties(Util.PROPERTIES, "eu.fbk.dkm.pikes.cmd.RDFGenerator")
.withMerging(merge).withNormalization(normalize).build();
return new Runner(inputFiles, outputFiles, generator, template);
}