diff --git a/installer/resources/i2prouter b/installer/resources/i2prouter index 99349a258..34ad1c099 100644 --- a/installer/resources/i2prouter +++ b/installer/resources/i2prouter @@ -29,7 +29,15 @@ # should have been replaced by the izpack installer. # If you did not run the installer, replace them with the appropriate paths. I2P="%INSTALL_PATH" -I2P_CONFIG_DIR="%USER_HOME/.i2p" +if [ "`uname -s`" == "Darwin" ]; then + if [ -d "%USER_HOME/Library/Application Support" ]; then + I2P_CONFIG_DIR="%USER_HOME/Library/Application Support/i2p" + else + I2P_CONFIG_DIR="%USER_HOME/.i2p" + fi +else + I2P_CONFIG_DIR="%USER_HOME/.i2p" +fi I2PTEMP="%SYSTEM_java_io_tmpdir" # PORTABLE installation: # Use the following instead. diff --git a/installer/resources/net.i2p.router.plist.template b/installer/resources/net.i2p.router.plist.template index 65fa2ac96..8f4f3fbe5 100644 --- a/installer/resources/net.i2p.router.plist.template +++ b/installer/resources/net.i2p.router.plist.template @@ -7,9 +7,9 @@ OnDemand StandardOutPath - ~/.i2p/wrapper.log + ~/Library/Application Support/i2p/wrapper.log StandardErrorPath - ~/.i2p/wrapper.log + ~/Library/Application Support/i2p/wrapper.log ProgramArguments COMMAND diff --git a/router/java/src/net/i2p/router/startup/WorkingDir.java b/router/java/src/net/i2p/router/startup/WorkingDir.java index eafaa19b8..ed7338123 100644 --- a/router/java/src/net/i2p/router/startup/WorkingDir.java +++ b/router/java/src/net/i2p/router/startup/WorkingDir.java @@ -49,6 +49,7 @@ public class WorkingDir { private final static String PROP_BASE_DIR = "i2p.dir.base"; private final static String PROP_WORKING_DIR = "i2p.dir.config"; private final static String WORKING_DIR_DEFAULT_WINDOWS = "I2P"; + private final static String WORKING_DIR_DEFAULT_MAC = "i2p"; private final static String WORKING_DIR_DEFAULT = ".i2p"; private final static String WORKING_DIR_DEFAULT_DAEMON = "i2p-config"; /** we do a couple of things differently if this is the username */ @@ -70,6 +71,7 @@ public class WorkingDir { dir = envProps.getProperty(PROP_WORKING_DIR); if (dir == null) dir = System.getProperty(PROP_WORKING_DIR); + boolean isWindows = SystemVersion.isWindows(); File dirf = null; if (dir != null) { @@ -81,6 +83,15 @@ public class WorkingDir { if (appdata != null) home = appdata; dirf = new SecureDirectory(home, WORKING_DIR_DEFAULT_WINDOWS); + } else if (SystemVersion.isMac()) { + String appdata = "/Library/Application Support/"; + File old = new File(home,WORKING_DIR_DEFAULT); + if (old.exists() && old.isDirectory()) + dirf = new SecureDirectory(home, WORKING_DIR_DEFAULT); + else { + home = home+appdata; + dirf = new SecureDirectory(home, WORKING_DIR_DEFAULT_MAC); + } } else { if (DAEMON_USER.equals(System.getProperty("user.name"))) dirf = new SecureDirectory(home, WORKING_DIR_DEFAULT_DAEMON);