Copy config file from NSIS, keep a reference to the router in the WinLauncher class

This commit is contained in:
idk
2022-09-12 16:45:27 -04:00
parent 09af24a115
commit 0ae1609f0f
3 changed files with 23 additions and 15 deletions

View File

@ -72,6 +72,7 @@ fi
cd java
"$JAVA_HOME"/bin/javac -d ../build -classpath "$HERE/build/i2pfirefox.jar:$HERE/build/jna.jar":"$HERE/build/jna-platform.jar":"$HERE/build/i2p.jar":"$HERE/build/router.jar":"$HERE/build/routerconsole.jar" \
net/i2p/router/CopyConfigDir.java \
net/i2p/router/Elevator.java \
net/i2p/router/Shell32X.java \
net/i2p/router/WinLauncher.java \

View File

@ -10,13 +10,13 @@ import java.io.OutputStream;
public class CopyConfigDir {
public boolean copyDirectory(String baseDir, String workDir) {
public static boolean copyDirectory(String baseDir, String workDir) {
File baseFile = new File(baseDir);
File workFile = new File(workDir);
return copyDirectory(baseFile, workFile);
}
public boolean copyDirectory(File baseDir, File workDir) {
public static boolean copyDirectory(File baseDir, File workDir) {
for (File file : baseDir.listFiles()) {
System.out.println(file.getAbsolutePath());
if (file.isDirectory())
@ -27,7 +27,7 @@ public class CopyConfigDir {
return true;
}
public boolean copyConfigDirectory(File baseDir, File workDir) {
public static boolean copyConfigDirectory(File baseDir, File workDir) {
for (File file : baseDir.listFiles()) {
System.out.println(file.getAbsolutePath());
if (file.isDirectory())
@ -38,17 +38,17 @@ public class CopyConfigDir {
return true;
}
public boolean copyFileNeverOverwrite(String basePath, String workPath) {
public static boolean copyFileNeverOverwrite(String basePath, String workPath) {
File baseFile = new File(basePath);
File workFile = new File(workPath);
return copyFileNeverOverwrite(baseFile, workFile);
}
public boolean copyFileNeverOverwrite(File basePath, File workPath) {
public static boolean copyFileNeverOverwrite(File basePath, File workPath) {
return copyFile(basePath, workPath, false);
}
public boolean copyFile(File basePath, File workPath, boolean overWrite) {
public static boolean copyFile(File basePath, File workPath, boolean overWrite) {
if (!basePath.exists()) {
return false;
}

View File

@ -30,7 +30,7 @@ import net.i2p.util.SystemVersion;
* appdata
* router.pid - the pid of the java process.
*/
public class WinLauncher {
public class WinLauncher extends CopyConfigDir {
static Logger logger = Logger.getLogger("launcherlog");
static WindowsUpdatePostProcessor wupp = null;
static FileHandler fh;
@ -100,6 +100,10 @@ public class WinLauncher {
// but probably ceases to be necessary, I can make jpackage generate
// the installer, **and** I get to build every other kind of jpackage
// powered package.
if (!copyConfigDir()){
logger.severe("Cannot copy the configuration directory");
System.exit(1);
}
if (launchBrowser(privateBrowsing, usabilityMode, chromiumFirst,
proxyTimeoutTime, newArgsList)) {
@ -113,6 +117,7 @@ public class WinLauncher {
logger.info("\t" + System.getProperty("i2p.dir.base") + "\n\t" +
System.getProperty("i2p.dir.config") + "\n\t" +
System.getProperty("router.pid"));
/**
* IMPORTANT: You must set user.dir to the same directory where the
* jpackage is intstalled, or when the launcher tries to re-run itself
@ -130,13 +135,8 @@ public class WinLauncher {
registrationThread.start();
setNotStarting();
// TODO: I actually did this once before, and reversed it for
// some dumb reason I can't remember. But if I go back through
// all the steps then I set up the router before I run it ^^
// see above commented out `wupp` and I don't have to wait for
// certain contexts to be ready anymore.
i2pRouter.runRouter();
// RouterLaunch.main(args);
}
private static void setupLauncher() {
@ -437,7 +437,8 @@ public class WinLauncher {
/**
* get the path to the default config of the app-image by getting the path to
* java.home and the OS, and traversing up to the app-image root based on that
* information, then appending lib/config to the end.
* information, then appending the config directory to the end onn a
* per-platform basis
*
* @return the app-image root
*/
@ -467,6 +468,12 @@ public class WinLauncher {
return null;
}
private static boolean copyConfigDir() {
File appImageConfigDir = appImageConfig();
File appImageHomeDir = appImageHome();
return copyDirectory(appImageConfigDir, appImageHomeDir);
}
/**
* set up the path to the log file
*