X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fbin%2FJalview.java;h=d70326e30f7597ad814d8943744cb129156e6568;hb=0788111a588187a04dd0d254d70b055274cf2c9d;hp=fbbb16ca3551ba4519b532bbb7850f2611be1473;hpb=560b04c9edddce9ccc69b59b5e7db934cf1e0cf0;p=jalview.git diff --git a/src/jalview/bin/Jalview.java b/src/jalview/bin/Jalview.java index fbbb16c..d70326e 100755 --- a/src/jalview/bin/Jalview.java +++ b/src/jalview/bin/Jalview.java @@ -39,7 +39,9 @@ import java.security.CodeSource; 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; @@ -64,8 +66,9 @@ import com.threerings.getdown.util.LaunchUtil; //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; @@ -280,12 +283,33 @@ public class Jalview */ 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"); + if (appdirString != null && appdirString.length() > 0) + { + final File appdir = new File(appdirString); + new Thread() + { + @Override + public void run() + { + LaunchUtil.upgradeGetdown( + new File(appdir, "getdown-launcher-old.jar"), + new File(appdir, "getdown-launcher.jar"), + new File(appdir, "getdown-launcher-new.jar")); + } + }.start(); + } + // get args needed before proper ArgParser BootstrapArgs bootstrapArgs = BootstrapArgs.getBootstrapArgs(args); @@ -396,6 +420,8 @@ public class Jalview 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) { @@ -408,12 +434,14 @@ public class Jalview // --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()) @@ -423,8 +451,12 @@ public class Jalview * @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); @@ -464,26 +496,40 @@ public class Jalview } } - String defs = aparser.getValue("setprop"); - while (defs != null) + List setprops = new ArrayList<>(); + if (bootstrapArgs.contains(Arg.SETPROP)) + { + setprops = bootstrapArgs.getList(Arg.SETPROP); + } + else { - int p = defs.indexOf('='); + String sp = aparser.getValue("setprop"); + while (sp != null) + { + setprops.add(sp); + sp = aparser.getValue("setprop"); + } + } + for (String setprop : setprops) + { + 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")) @@ -522,7 +568,9 @@ public class Jalview 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 @@ -629,14 +677,16 @@ public class Jalview .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(); } @@ -672,25 +722,6 @@ public class Jalview + LaunchUtils.getJavaCompileVersion() + "."); } - // Move any new getdown-launcher-new.jar into place over old - // getdown-launcher.jar - String appdirString = System.getProperty("getdownappdir"); - if (appdirString != null && appdirString.length() > 0) - { - final File appdir = new File(appdirString); - new Thread() - { - @Override - public void run() - { - LaunchUtil.upgradeGetdown( - new File(appdir, "getdown-launcher-old.jar"), - new File(appdir, "getdown-launcher.jar"), - new File(appdir, "getdown-launcher-new.jar")); - } - }.start(); - } - String file = null, data = null; FileFormatI format = null; @@ -705,7 +736,7 @@ public class Jalview groovyscript = aparser.getValue("groovy", true); file = aparser.getValue("open", true); - if (file == null && desktop == null) + if (file == null && desktop == null && !commandsSuccess) { Jalview.exit("No files to open!", 1); } @@ -1599,7 +1630,6 @@ public class Jalview public static void exit(String message, int exitcode) { - System.err.println("####### EXITING HERE!"); Console.debug("Using Jalview.exit"); if (message != null) if (exitcode == 0)