import java.security.PermissionCollection;
import java.security.Permissions;
import java.security.Policy;
+import java.util.ArrayList;
import java.util.HashMap;
+import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.Properties;
//import edu.stanford.ejalbert.launching.IBrowserLaunching;
import groovy.lang.Binding;
import groovy.util.GroovyScriptEngine;
-import jalview.bin.ArgParser.Arg;
-import jalview.bin.ArgParser.BootstrapArgs;
+import jalview.bin.argparser.Arg;
+import jalview.bin.argparser.ArgParser;
+import jalview.bin.argparser.BootstrapArgs;
import jalview.ext.so.SequenceOntology;
import jalview.gui.AlignFrame;
import jalview.gui.Desktop;
*/
void doMain(String[] args)
{
-
if (!Platform.isJS())
{
System.setSecurityManager(null);
}
+ if (args == null)
+ args = new String[] {};
+
// Move any new getdown-launcher-new.jar into place over old
// getdown-launcher.jar
String appdirString = System.getProperty("getdownappdir");
String usrPropsFile = bootstrapArgs.contains(Arg.PROPS)
? bootstrapArgs.get(Arg.PROPS)
: aparser.getValue("props");
+ // if usrPropsFile == null, loadProperties will use the Channel
+ // preferences.file
Cache.loadProperties(usrPropsFile);
if (usrPropsFile != null)
{
// --argfile=... -- OVERRIDES ALL NON-BOOTSTRAP ARGS
if (bootstrapArgs.contains(Arg.ARGFILE))
{
- argparser = ArgParser
- .parseArgFiles(bootstrapArgs.getList(Arg.ARGFILE));
+ argparser = ArgParser.parseArgFiles(
+ bootstrapArgs.getList(Arg.ARGFILE),
+ bootstrapArgs.getBoolean(Arg.INITSUBSTITUTIONS));
}
else
{
- argparser = new ArgParser(args);
+ argparser = new ArgParser(args,
+ bootstrapArgs.getBoolean(Arg.INITSUBSTITUTIONS));
}
if (!Platform.isJS())
* @j2sIgnore
*/
{
- if (aparser.contains("help") || aparser.contains("h")
- || argparser.getBool(Arg.HELP))
+ if (bootstrapArgs.contains(Arg.HELP))
+ {
+ System.out.println(Arg.usage());
+ Jalview.exit(null, 0);
+ }
+ if (aparser.contains("help") || aparser.contains("h"))
{
showUsage();
Jalview.exit(null, 0);
}
}
- String defs = aparser.getValue("setprop");
- while (defs != null)
+ List<String> setprops = new ArrayList<>();
+ if (bootstrapArgs.contains(Arg.SETPROP))
+ {
+ setprops = bootstrapArgs.getList(Arg.SETPROP);
+ }
+ else
+ {
+ String sp = aparser.getValue("setprop");
+ while (sp != null)
+ {
+ setprops.add(sp);
+ sp = aparser.getValue("setprop");
+ }
+ }
+ for (String setprop : setprops)
{
- int p = defs.indexOf('=');
+ int p = setprop.indexOf('=');
if (p == -1)
{
- System.err.println("Ignoring invalid setprop argument : " + defs);
+ System.err
+ .println("Ignoring invalid setprop argument : " + setprop);
}
else
{
- System.out.println("Executing setprop argument: " + defs);
+ System.out.println("Executing setprop argument: " + setprop);
if (Platform.isJS())
{
- Cache.setProperty(defs.substring(0, p), defs.substring(p + 1));
+ Cache.setProperty(setprop.substring(0, p),
+ setprop.substring(p + 1));
}
// DISABLED FOR SECURITY REASONS
// TODO: add a property to allow properties to be overriden by cli args
- // Cache.setProperty(defs.substring(0,p), defs.substring(p+1));
+ // Cache.setProperty(setprop.substring(0,p), setprop.substring(p+1));
}
- defs = aparser.getValue("setprop");
}
if (System.getProperty("java.awt.headless") != null
&& System.getProperty("java.awt.headless").equals("true"))
if (!(headless || headlessArg))
{
- Desktop.nosplash = aparser.contains("nosplash");
+ Desktop.nosplash = "false".equals(bootstrapArgs.get(Arg.SPLASH))
+ || aparser.contains("nosplash")
+ || Cache.getDefault("SPLASH", "true").equals("false");
desktop = new Desktop();
desktop.setInBatchMode(true); // indicate we are starting up
.println("CMD [-noquestionnaire] executed successfully!");
}
- if (!aparser.contains("nonews")
- || Cache.getProperty("NONEWS") == null)
+ if ((!aparser.contains("nonews")
+ && Cache.getProperty("NONEWS") == null
+ && !"false".equals(bootstrapArgs.get(Arg.NEWS)))
+ || "true".equals(bootstrapArgs.get(Arg.NEWS)))
{
desktop.checkForNews();
}
if (!aparser.contains("nohtmltemplates")
- || Cache.getProperty("NOHTMLTEMPLATES") == null)
+ && Cache.getProperty("NOHTMLTEMPLATES") == null)
{
BioJsHTMLOutput.updateBioJS();
}
public static void exit(String message, int exitcode)
{
- System.err.println("####### EXITING HERE!");
Console.debug("Using Jalview.exit");
if (message != null)
if (exitcode == 0)