From 4f8b70b2f4d8a2de9316d17a17008d40d25252eb Mon Sep 17 00:00:00 2001 From: Markil3 <75867393+Markil3@users.noreply.github.com> Date: Wed, 15 Sep 2021 10:04:17 -0600 Subject: [PATCH] Makes the application run independently of the current directory. --- .../regis/universeplayer/browser/Browser.java | 13 +--- .../regis/universeplayer/ConfigManager.java | 59 +++++++++++++++++++ .../universeplayer/PlayerEnvironment.java | 14 +---- src/install.sh | 10 ++-- 4 files changed, 68 insertions(+), 28 deletions(-) rename {interface => browserCommands}/src/main/java/edu/regis/universeplayer/ConfigManager.java (60%) diff --git a/browser/src/main/java/edu/regis/universeplayer/browser/Browser.java b/browser/src/main/java/edu/regis/universeplayer/browser/Browser.java index fc2af0c..5593dfe 100644 --- a/browser/src/main/java/edu/regis/universeplayer/browser/Browser.java +++ b/browser/src/main/java/edu/regis/universeplayer/browser/Browser.java @@ -18,6 +18,7 @@ import java.net.Socket; import java.util.Scanner; import java.util.concurrent.atomic.AtomicBoolean; +import edu.regis.universeplayer.ConfigManager; import edu.regis.universeplayer.browserCommands.BrowserConstants; import edu.regis.universeplayer.browserCommands.MessageRunner; @@ -178,17 +179,7 @@ public class Browser extends MessageRunner String os = System.getProperty("os.name").toLowerCase(); String arch = System.getProperty("os.arch").toLowerCase(); String args; - File browserDir = new File(System.getProperty("user.dir"), "firefox"); - if (!browserDir.isDirectory()) - { - browserDir = new File(new File(System.getProperty("user.dir")) - .getParent(), "firefox"); - } - File profileDir = new File(System.getProperty("user.dir"), "profile"); - if (!profileDir.exists()) - { - profileDir.mkdir(); - } + File browserDir = ConfigManager.getFirefoxDir(); // args = " -no-remote -profile \"" + profileDir.getAbsolutePath() + "\""; args = " -no-remote -P Universal"; diff --git a/interface/src/main/java/edu/regis/universeplayer/ConfigManager.java b/browserCommands/src/main/java/edu/regis/universeplayer/ConfigManager.java similarity index 60% rename from interface/src/main/java/edu/regis/universeplayer/ConfigManager.java rename to browserCommands/src/main/java/edu/regis/universeplayer/ConfigManager.java index 636d6ec..bdb16c1 100644 --- a/interface/src/main/java/edu/regis/universeplayer/ConfigManager.java +++ b/browserCommands/src/main/java/edu/regis/universeplayer/ConfigManager.java @@ -20,6 +20,65 @@ public class ConfigManager private static File dataDir; private static File commDir; private static File configDir; + private static File appDir; + private static File firefoxDir; + + /** + * Obtains the install directory for the application. + * + * @return The application storage directory. + */ + public static File getAppDir() + { + if (appDir == null) + { + appDir = new File(System.getProperty("java.class" + + ".path").split(File.pathSeparator)[0]); + appDir = appDir.getParentFile(); + firefoxDir = new File(appDir, "firefox"); + if (!firefoxDir.exists()) + { + firefoxDir = new File(appDir.getParent(), "firefox"); + if (firefoxDir.exists()) + { + appDir = appDir.getParentFile(); + } + else + { + firefoxDir = new File(System.getProperty("user.dir"), + "firefox"); + if (firefoxDir.exists()) + { + appDir = new File(System.getProperty("user.dir")); + } + else + { + firefoxDir = new File(firefoxDir.getParentFile().getParent(), + "firefox"); + if (firefoxDir.exists()) + { + appDir = firefoxDir.getParentFile(); + } + } + } + } + } + return appDir; + } + + /** + * Obtains the install directory the firefox installation.. + * + * @return The firefox storage directory. + */ + public static File getFirefoxDir() + { + if (firefoxDir == null) + { + getAppDir(); + } + return firefoxDir; + } /** * Obtains the data storage directory for the application, creating it if diff --git a/interface/src/main/java/edu/regis/universeplayer/PlayerEnvironment.java b/interface/src/main/java/edu/regis/universeplayer/PlayerEnvironment.java index 573bce5..a8d2be6 100644 --- a/interface/src/main/java/edu/regis/universeplayer/PlayerEnvironment.java +++ b/interface/src/main/java/edu/regis/universeplayer/PlayerEnvironment.java @@ -3,6 +3,7 @@ package edu.regis.universeplayer; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import java.io.File; import java.io.IOException; import java.io.PrintStream; import java.net.Socket; @@ -46,7 +47,6 @@ public class PlayerEnvironment */ public static void main(String[] args) { - logger.info("MAIN FOREVER"); LinkedHashMap ops = new LinkedHashMap<>(); ArrayList params = new ArrayList<>(); parseArgs(args, ops, params); @@ -466,8 +466,6 @@ public class PlayerEnvironment } if (matches > 0) { - out.printf("%d matches for %s and %s\n", matches, - finalParam, song); matchMap.put(song, matches); } }); @@ -477,15 +475,7 @@ public class PlayerEnvironment List songs = matchMap.entrySet().stream().sorted(Map.Entry .comparingByValue()).filter(entry -> (entry .getValue() / (float) params.size()) >= 0.65F) - .map(entry -> { - out.printf("%s: %d / %d (%f)\n", - entry.getKey(), - entry.getValue(), - params.size(), - entry.getValue() / (float) params - .size()); - return entry.getKey(); - }) + .map(Map.Entry::getKey) .collect(Collectors.toList()); Collections.reverse(songs); out.println("Playing " + songs.toString()); diff --git a/src/install.sh b/src/install.sh index 275d280..eac1c58 100644 --- a/src/install.sh +++ b/src/install.sh @@ -54,11 +54,11 @@ then exit 3 fi chmod +X "\$installDir/firefox/firefox" -rm "/tmp/firefox.tar.bz2" -if [ \$? -ne 0 ] -then - echo "WARNING: Could not clean up firefox!" 1>&2 -fi +#rm "/tmp/firefox.tar.bz2" +#if [ \$? -ne 0 ] +#then +# echo "WARNING: Could not clean up firefox!" 1>&2 +#fi cd "\$OLDPWD" cd "\$installDir/firefox"