diff --git a/java/net/i2p/router/WinUpdateProcess.java b/java/net/i2p/router/WinUpdateProcess.java index 3c060bc..c2b3f98 100644 --- a/java/net/i2p/router/WinUpdateProcess.java +++ b/java/net/i2p/router/WinUpdateProcess.java @@ -18,11 +18,26 @@ class WinUpdateProcess implements Runnable { this.versionSupplier = versionSupplier; this.file = file; } + + private File workDir() throws IOException{ + if (ctx != null) { + File workDir = new File(ctx.getConfigDir().getAbsolutePath(), "i2p_update_win"); + if (workDir.exists()) { + if (workDir.isFile()) + throw new IOException(workDir + " exists but is a file, get it out of the way"); + return null; + } else { + workDir.mkdirs(); + } + return workDir; + } + return null; + } - private void runUpdateInstaller(File file){ + private void runUpdateInstaller(File file) throws IOException { String version = versionSupplier.get(); - var workingDir = new File(ctx.getConfigDir(), "mac_updates"); + var workingDir = workDir(); var logFile = new File(workingDir, "log-" + version + ".txt"); ProcessBuilder pb = new ProcessBuilder(file.getAbsolutePath()); @@ -47,6 +62,10 @@ class WinUpdateProcess implements Runnable { @Override public void run() { - runUpdateInstaller(file); + try { + runUpdateInstaller(file); + } catch(IOException ioe) { + _log.error("Error running updater, update may fail.", ioe); + } } } diff --git a/java/net/i2p/router/WindowsUpdatePostProcessor.java b/java/net/i2p/router/WindowsUpdatePostProcessor.java index 1c6c749..3f6f361 100644 --- a/java/net/i2p/router/WindowsUpdatePostProcessor.java +++ b/java/net/i2p/router/WindowsUpdatePostProcessor.java @@ -67,7 +67,7 @@ public class WindowsUpdatePostProcessor implements UpdatePostProcessor { private File moveUpdateInstaller(File file) throws IOException{ RouterContext i2pContext = i2pRouter.getContext(); if (i2pContext != null) { - File appDir = i2pContext.getAppDir(); + File appDir = i2pContext.getConfigDir(); File newFile = new File(workDir(), file.getName()); file.renameTo(newFile); return newFile; @@ -78,7 +78,7 @@ public class WindowsUpdatePostProcessor implements UpdatePostProcessor { private File workDir() throws IOException{ RouterContext i2pContext = i2pRouter.getContext(); if (i2pContext != null) { - File workDir = new File(i2pContext.getAppDir().getAbsolutePath(), "i2p_update_win"); + File workDir = new File(i2pContext.getConfigDir().getAbsolutePath(), "i2p_update_win"); if (workDir.exists()) { if (workDir.isFile()) throw new IOException(workDir + " exists but is a file, get it out of the way"); @@ -96,12 +96,12 @@ public class WindowsUpdatePostProcessor implements UpdatePostProcessor { if (SystemVersion.isWindows()) { File jrehome = new File(System.getProperty("java.home")); File programs = jrehome.getParentFile(); - System.out.println("Windows portable jpackage wrapper started, using: " + programs + " as working config"); + System.out.println("Windows portable jpackage wrapper found, using: " + programs + " as working config"); return programs.getAbsoluteFile(); } else { File jrehome = new File(System.getProperty("java.home")); File programs = new File(jrehome.getParentFile().getParentFile(), "i2p"); - System.out.println("Linux portable jpackage wrapper started, using: " + programs + " as working config"); + System.out.println("Linux portable jpackage wrapper found, using: " + programs + " as working config"); return programs.getAbsoluteFile(); } } diff --git a/src/nsis/i2pbrowser-installer.nsi b/src/nsis/i2pbrowser-installer.nsi index 01bcdde..58dd1ad 100644 --- a/src/nsis/i2pbrowser-installer.nsi +++ b/src/nsis/i2pbrowser-installer.nsi @@ -203,7 +203,6 @@ Function routerDetect File /nonfatal "I2P\config\wrapper.config" File /nonfatal "I2P\config\hosts.txt" - createDirectory "$I2PINSTEXE\webapps\" SetOutPath "$I2PINSTEXE\webapps\" File /nonfatal /a /r "I2P\config\webapps\" @@ -286,10 +285,6 @@ Section Install ${EndIf} ${EndIf} - - - - # Install the launcher scripts createDirectory "$INSTDIR\licenses" SetOutPath "$INSTDIR"