![JAR search and dependency download from the Maven repository](/logo.png)
jsclassloader.cli.CommandLineRunner Maven / Gradle / Ivy
package jsclassloader.cli;
import java.io.File;
import java.io.FileOutputStream;
import java.io.PrintStream;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import jsclassloader.Bundler;
import jsclassloader.Config;
import jsclassloader.dependency.ClassNode;
public class CommandLineRunner {
static boolean usePropertiesFile;
static String propFileName;
static List seedClassesFromCmdLine;
static String [] sourcePaths;
private final static Logger LOG = Logger.getLogger("JS-Class-Loader");
public static void main(String[] args) throws Exception {
execute(args, System.out);
}
public static void execute(String [] args, PrintStream out) throws Exception {
LOG.setLevel(Level.WARNING);
ArgumentParser parser = new ArgumentParser();
Config config = parser.parseArgs(args);
Bundler bundler = new Bundler(config);
if (parser.isListMode()) {
for (ClassNode item : bundler.getClassList()) {
out.println(item.getValue());
}
}
else {
String scriptTagFileConfig = config.getProperty(Config.PROP_SCRIPT_TAGS);
if (scriptTagFileConfig != null) {
File scriptTagFile = prepFile(scriptTagFileConfig);
out = new PrintStream(new FileOutputStream(scriptTagFile));
bundler.writeScriptTags(out, config);
out.close();
}
String graphFileConfig = config.getProperty(Config.PROP_GRAPH_FILE);
if (graphFileConfig != null) {
File graphFile = prepFile(graphFileConfig);
out = new PrintStream(new FileOutputStream(graphFile));
out.print(bundler.getDependencyGraph().renderDotFile(bundler.getSeedClassNameList()));
out.close();
File moduleGraphFile = prepFile(graphFileConfig + ".modules");
out = new PrintStream(new FileOutputStream(moduleGraphFile));
out.print(bundler.getDependencyGraph().renderModuleDotFile());
out.close();
}
String bundleFileConfig = config.getProperty(Config.PROP_BUNDLE_FILE);
if (bundleFileConfig != null) {
File bundleFile = prepFile(bundleFileConfig);
out = new PrintStream(new FileOutputStream(bundleFile));
bundler.write(out);
out.close();
}
else {
bundler.write(System.out);
}
}
}
public static File prepFile(String path) {
File file = new File(path);
if (file.getParentFile() != null && !file.getParentFile().exists()) {
file.getParentFile().mkdirs();
}
return file;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy