From 4e16fce61f39d8bab3d25d565f284136238cdaab Mon Sep 17 00:00:00 2001 From: Jurek Weber Date: Tue, 18 Oct 2016 21:17:29 -0500 Subject: [PATCH 1/2] MacOS custom dir support --- .../src/main/java/com/skcraft/launcher/Bootstrap.java | 2 ++ .../main/resources/com/skcraft/launcher/bootstrap.properties | 3 ++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/launcher-bootstrap/src/main/java/com/skcraft/launcher/Bootstrap.java b/launcher-bootstrap/src/main/java/com/skcraft/launcher/Bootstrap.java index 463245efc..25803aa62 100644 --- a/launcher-bootstrap/src/main/java/com/skcraft/launcher/Bootstrap.java +++ b/launcher-bootstrap/src/main/java/com/skcraft/launcher/Bootstrap.java @@ -194,6 +194,8 @@ private File getUserLauncherDir() { String osName = System.getProperty("os.name").toLowerCase(); if (osName.contains("win")) { return new File(getFileChooseDefaultDir(), getProperties().getProperty("homeFolderWindows")); + } else if (osName.contains("mac") && getProperties().getProperty("homeFolderMac") != null) { + return new File(getFileChooseDefaultDir(), getProperties().getProperty("homeFolderMac")); } else { return new File(System.getProperty("user.home"), getProperties().getProperty("homeFolder")); } diff --git a/launcher-bootstrap/src/main/resources/com/skcraft/launcher/bootstrap.properties b/launcher-bootstrap/src/main/resources/com/skcraft/launcher/bootstrap.properties index 8609369f7..c0f4d259e 100644 --- a/launcher-bootstrap/src/main/resources/com/skcraft/launcher/bootstrap.properties +++ b/launcher-bootstrap/src/main/resources/com/skcraft/launcher/bootstrap.properties @@ -5,6 +5,7 @@ # homeFolderWindows=Example Launcher +homeFolderMac=Library/Application Support/ExampleLauncher homeFolder=.examplelauncher launcherClass=com.skcraft.launcher.Launcher -latestUrl=http://update.skcraft.com/quark/launcher/latest.json \ No newline at end of file +latestUrl=http://update.skcraft.com/quark/launcher/latest.json From 57f2f6a89e5c4b5b5490f6723a53e611cabbadbc Mon Sep 17 00:00:00 2001 From: Jurek Weber Date: Wed, 2 Nov 2016 08:57:45 -0600 Subject: [PATCH 2/2] detecting old directory (MacOS) --- .../java/com/skcraft/launcher/Bootstrap.java | 20 +++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/launcher-bootstrap/src/main/java/com/skcraft/launcher/Bootstrap.java b/launcher-bootstrap/src/main/java/com/skcraft/launcher/Bootstrap.java index 25803aa62..0221e8dcd 100644 --- a/launcher-bootstrap/src/main/java/com/skcraft/launcher/Bootstrap.java +++ b/launcher-bootstrap/src/main/java/com/skcraft/launcher/Bootstrap.java @@ -20,6 +20,9 @@ import java.net.MalformedURLException; import java.net.URL; import java.net.URLClassLoader; +import java.nio.file.Files; +import java.nio.file.Paths; +import java.nio.file.StandardCopyOption; import java.util.*; import java.util.logging.Level; @@ -183,7 +186,7 @@ public static void setSwingLookAndFeel() { } catch (Throwable e) { } } - + private static File getFileChooseDefaultDir() { JFileChooser chooser = new JFileChooser(); FileSystemView fsv = chooser.getFileSystemView(); @@ -195,7 +198,20 @@ private File getUserLauncherDir() { if (osName.contains("win")) { return new File(getFileChooseDefaultDir(), getProperties().getProperty("homeFolderWindows")); } else if (osName.contains("mac") && getProperties().getProperty("homeFolderMac") != null) { - return new File(getFileChooseDefaultDir(), getProperties().getProperty("homeFolderMac")); + // this scope can be replaced with: return new File(getFileChooseDefaultDir(), getProperties().getProperty("homeFolderMac")); + File macHomeFolder = new File(getFileChooseDefaultDir(), getProperties().getProperty("homeFolderMac")); + try { + if (!macHomeFolder.exists()) { + File standartHomeFolder = new File(System.getProperty("user.home"), getProperties().getProperty("homeFolder")); + if (standartHomeFolder.exists()) { + log.info("Found launcher directory at the wrong place... Moving " + standartHomeFolder.getAbsolutePath() + " to " + macHomeFolder.getAbsolutePath() + "..."); + Files.move(Paths.get(standartHomeFolder.getPath()), Paths.get(macHomeFolder.getPath()), StandardCopyOption.REPLACE_EXISTING); + } + } + } catch (IOException e) { + log.log(Level.WARNING, "Error occurred while moving the directory. Creating and using new laucher directory (" + macHomeFolder.getAbsolutePath() + ").", e); + } + return macHomeFolder; } else { return new File(System.getProperty("user.home"), getProperties().getProperty("homeFolder")); }