JAL-3247 First attempt at getdown code to add macOS startup filenames to the appargs...
authorBen Soares <bsoares@dundee.ac.uk>
Fri, 3 May 2019 23:03:55 +0000 (00:03 +0100)
committerBen Soares <bsoares@dundee.ac.uk>
Fri, 3 May 2019 23:03:55 +0000 (00:03 +0100)
getdown/src/getdown/core/src/main/java/com/threerings/getdown/data/Application.java
getdown/src/getdown/launcher/src/main/java/com/threerings/getdown/launcher/Getdown.java
getdown/src/getdown/launcher/src/main/java/com/threerings/getdown/launcher/GetdownApp.java

index 0a49739..212e948 100644 (file)
@@ -767,6 +767,12 @@ public class Application
 
         // add the launch specific application arguments
         _appargs.addAll(_envc.appArgs);
+        
+        // add startupFiles
+        for (File f : startupFiles) {
+          _appargs.add("-open");
+          _appargs.add(f.getAbsolutePath());
+        }
 
         // look for custom arguments
         fillAssignmentListFromPairs("extra.txt", _txtJvmArgs);
@@ -1760,6 +1766,10 @@ public class Application
     {
         return new File(appdir, path);
     }
+    
+    public void addStartupFile (File f) {
+      startupFiles.add(f);
+    }
 
     protected final EnvConfig _envc;
     protected File _config;
@@ -1804,6 +1814,7 @@ public class Application
 
     protected List<String> _jvmargs = new ArrayList<>();
     protected List<String> _appargs = new ArrayList<>();
+    protected List<File> startupFiles = new ArrayList<>();
 
     protected String[] _optimumJvmArgs;
 
index 99def4f..ae679e2 100644 (file)
@@ -1035,6 +1035,37 @@ public abstract class Getdown extends Thread
         }
     };
 
+    public void setStartupFilesFromParameterString(String p) {
+      String q = "\"";
+      if (p != null && p.length() > 0) {
+        String[] filenames;
+        if (p.startsWith(q) && p.endsWith(q)) {
+          filenames = p.substring(1,p.length()-1).split("\" \"");
+        } else {
+          filenames = new String[]{p};
+        }
+        for (int i = 0; i < filenames.length; i++) {
+          String filename = filenames[i];
+          String ext = null;
+          int j = filename.lastIndexOf('.');
+          if (j > -1) {
+            ext = filename.substring(j+1);
+          }
+          // jvp files
+          if (ext.equals("jvp")) {
+            File f = new File(filename);
+            if (f.exists()) {
+              _app.addStartupFile(f);
+            }
+          }
+          // jvl files
+          if (ext.equals("jvl")) {
+            // Do stuff with the appbase here!
+          }
+        }
+      }
+    }
+
     protected Application _app;
     protected Application.UpdateInterface _ifc = new Application.UpdateInterface(Config.EMPTY);
 
index 0c8cac5..f632b65 100644 (file)
@@ -108,7 +108,7 @@ public class GetdownApp
       e.printStackTrace();
     }
     
-    Thread.sleep(500);
+    //Thread.sleep(200);
 
     // record a few things for posterity
     log.info("------------------ VM Info ------------------");
@@ -120,7 +120,6 @@ public class GetdownApp
     log.info("-- User Name: " + System.getProperty("user.name"));
     log.info("-- User Home: " + System.getProperty("user.home"));
     log.info("-- Cur dir: " + System.getProperty("user.dir"));
-    log.info("-- JVL: " + System.getProperty("jvl"));
     log.info("-- startupFilesParameterString: " + startupFilesParameterString);
     log.info("---------------------------------------------");
 
@@ -270,6 +269,9 @@ public class GetdownApp
 
       protected JFrame _frame;
     };
+    if (getStartupFilesParameterString() != null) {
+      app.setStartupFilesFromParameterString(getStartupFilesParameterString());
+    }
     app.start();
     return app;
   }
@@ -277,4 +279,8 @@ public class GetdownApp
   public static void setStartupFilesParameterString(String parameters) {
     startupFilesParameterString = parameters;
   }
+  
+  public static String getStartupFilesParameterString() {
+    return startupFilesParameterString;
+  }
 }