JAL-629 don’t carry on Jalview.main if we’ve already processed command line args...
authorJames Procter <j.procter@dundee.ac.uk>
Tue, 24 Jan 2023 07:48:54 +0000 (07:48 +0000)
committerJames Procter <j.procter@dundee.ac.uk>
Tue, 24 Jan 2023 07:48:54 +0000 (07:48 +0000)
src/jalview/bin/Commands.java
src/jalview/bin/Jalview.java

index 289d962..61ee1be 100644 (file)
@@ -48,11 +48,11 @@ public class Commands
 
   private Map<String, AlignFrame> afMap;
 
-  public static void processArgs(ArgParser ap, boolean h)
+  public static boolean processArgs(ArgParser ap, boolean h)
   {
     argParser = ap;
     headless = h;
-
+    boolean argsWereParsed = false;
     if (headless)
     {
       System.setProperty("java.awt.headless", "true");
@@ -73,14 +73,24 @@ public class Commands
           cmds.processLinked(id);
         }
         cmds.processImages(id);
+        argsWereParsed |= cmds.wereParsed();
       }
 
     }
     if (argParser.getBool(Arg.QUIT))
     {
       Jalview.getInstance().quit();
-      // Desktop.instance.quit();
+      return true;
     }
+    // carry on with jalview.bin.Jalview
+    return argsWereParsed;
+  }
+
+  boolean argsWereParsed = false;
+
+  private boolean wereParsed()
+  {
+    return argsWereParsed;
   }
 
   public Commands()
@@ -328,12 +338,15 @@ public class Commands
           Console.error("Could not open any files in headless mode");
           System.exit(1);
         }
-      }
-      else
-      {
-        Console.warn("No more files to open");
-        if (desktop != null)
-          desktop.setProgressBar(null, progress);
+        // TOREMOVE COMMENT
+        // @Ben assumed this was the GUI version of above, rather then the
+        // first==false state
+        else
+        {
+          Console.warn("No more files to open");
+          if (desktop != null)
+            desktop.setProgressBar(null, progress);
+        }
       }
 
     }
index 1f01125..6238c7d 100755 (executable)
@@ -565,7 +565,10 @@ public class Jalview
 
     if (argparser.isSet(Arg.HEADLESS))
       headless = argparser.getBool(Arg.HEADLESS);
-    Commands.processArgs(argparser, headless);
+    if (Commands.processArgs(argparser, headless))
+    {
+      System.exit(1);
+    }
 
     String file = null, data = null;
     FileFormatI format = null;