Merge branch 'features/r2_11_2_alphafold/JAL-629' into features/JAL-3858_PAEsInProjects
[jalview.git] / src / jalview / bin / Jalview.java
index 0ec9889..a988a09 100755 (executable)
@@ -58,6 +58,7 @@ 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.ext.so.SequenceOntology;
 import jalview.gui.AlignFrame;
 import jalview.gui.Desktop;
@@ -324,10 +325,22 @@ public class Jalview
     // report Jalview version
     Cache.loadBuildProperties(true);
 
+    // old ArgsParser
     ArgsParser aparser = new ArgsParser(args);
 
     boolean headless = false;
 
+    try
+    {
+      Console.initLogger();
+    } catch (NoClassDefFoundError error)
+    {
+      error.printStackTrace();
+      System.out.println("\nEssential logging libraries not found."
+              + "\nUse: java -classpath \"$PATH_TO_LIB$/*:$PATH_TO_CLASSES$\" jalview.bin.Jalview");
+      System.exit(0);
+    }
+
     String usrPropsFile = aparser.getValue("props");
     Cache.loadProperties(usrPropsFile); // must do this
                                         // before
@@ -337,6 +350,31 @@ public class Jalview
               "CMD [-props " + usrPropsFile + "] executed successfully!");
     }
 
+    // set log level from cache properties
+    Console.setLogLevel(Cache.getDefault(Cache.JALVIEWLOGLEVEL, "INFO"));
+
+    // new ArgParser
+    ArgParser argparser = new ArgParser(args); // do this after
+                                               // Console.initLogger, but TODO
+                                               // want --props before then
+                                               // CATCH22
+
+    if (argparser.isSet(Arg.HEADLESS))
+      headless = argparser.getBool(Arg.HEADLESS);
+    boolean commandsSuccess = Commands.processArgs(argparser, headless);
+    if (commandsSuccess)
+    {
+      Console.info("Successfully completed commands");
+      if (headless)
+        System.exit(0);
+    }
+    else
+    {
+      Console.warn("Error when running commands");
+      if (headless)
+        System.exit(1);
+    }
+
     if (!Platform.isJS())
     /**
      * Java only
@@ -344,13 +382,18 @@ public class Jalview
      * @j2sIgnore
      */
     {
+      if (argparser.isSet(Arg.HEADLESS))
+      {
+        headless = argparser.getBool(Arg.HEADLESS);
+      }
+
       if (aparser.contains("help") || aparser.contains("h"))
       {
         showUsage();
         System.exit(0);
       }
-      if (aparser.contains("nodisplay") || aparser.contains("nogui")
-              || aparser.contains("headless"))
+      if (headless || aparser.contains("nodisplay")
+              || aparser.contains("nogui") || aparser.contains("headless"))
       {
         System.setProperty("java.awt.headless", "true");
         headless = true;
@@ -405,19 +448,6 @@ public class Jalview
     System.setProperty("http.agent",
             "Jalview Desktop/" + Cache.getDefault("VERSION", "Unknown"));
 
-    try
-    {
-      Console.initLogger();
-    } catch (
-
-    NoClassDefFoundError error)
-    {
-      error.printStackTrace();
-      System.out.println("\nEssential logging libraries not found."
-              + "\nUse: java -classpath \"$PATH_TO_LIB$/*:$PATH_TO_CLASSES$\" jalview.bin.Jalview");
-      System.exit(0);
-    }
-
     desktop = null;
 
     setLookAndFeel();