WindowsAppUtil and WindowsServiceUtil now do not have references to I2P itself
This commit is contained in:
@ -125,6 +125,7 @@ cd "$SCRIPT_DIR"/java
|
||||
net/i2p/router/CopyConfigDir.java \
|
||||
net/i2p/router/WindowsServiceUtil.java \
|
||||
net/i2p/router/WindowsAppUtil.java \
|
||||
net/i2p/router/I2PAppUtil.java \
|
||||
net/i2p/router/WinUpdatePostProcessor.java \
|
||||
net/i2p/router/WinLauncher.java \
|
||||
net/i2p/router/WinUpdateProcess.java \
|
||||
|
@ -12,7 +12,7 @@ import java.util.logging.FileHandler;
|
||||
import java.util.logging.SimpleFormatter;
|
||||
import net.i2p.util.Log;
|
||||
|
||||
public class CopyConfigDir extends WindowsAppUtil {
|
||||
public class CopyConfigDir extends I2PAppUtil {
|
||||
final Log logger;
|
||||
|
||||
public CopyConfigDir(RouterContext ctx) {
|
||||
@ -142,7 +142,7 @@ public class CopyConfigDir extends WindowsAppUtil {
|
||||
* @return
|
||||
*/
|
||||
protected File logFile(String p) {
|
||||
File log = new File(selectProgramFile(), "logs");
|
||||
File log = new File(selectHome(), "logs");
|
||||
if (!log.exists())
|
||||
log.mkdirs();
|
||||
return new File(log, p);
|
||||
|
106
java/net/i2p/router/I2PAppUtil.java
Normal file
106
java/net/i2p/router/I2PAppUtil.java
Normal file
@ -0,0 +1,106 @@
|
||||
package net.i2p.router;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import javax.swing.JOptionPane;
|
||||
|
||||
public class I2PAppUtil extends WindowsAppUtil {
|
||||
public String ServiceUpdaterString() {
|
||||
return "http://tc73n4kivdroccekirco7rhgxdg5f3cjvbaapabupeyzrqwv5guq.b32.i2p/news.su3";
|
||||
}
|
||||
public String ServiceBackupUpdaterString() {
|
||||
return "http://dn3tvalnjz432qkqsvpfdqrwpqkw3ye4n4i2uyfr4jexvo3sp5ka.b32.i2p/news.su3";
|
||||
}
|
||||
public String ServiceStaticUpdaterString() {
|
||||
return "http://echelon.i2p/i2p/i2pupdate.sud,http://stats.i2p/i2p/i2pupdate.sud";
|
||||
}
|
||||
|
||||
public String getProgramFilesInstall() {
|
||||
String programFiles = System.getenv("PROGRAMFILES");
|
||||
if (programFiles != null) {
|
||||
File programFilesI2P = new File(programFiles, "i2p/i2p.exe");
|
||||
if (programFilesI2P.exists())
|
||||
return programFilesI2P.getAbsolutePath();
|
||||
}
|
||||
String programFiles86 = System.getenv("PROGRAMFILES86");
|
||||
if (programFiles86 != null) {
|
||||
File programFiles86I2P = new File(programFiles86, "i2p/i2p.exe");
|
||||
if (programFiles86I2P.exists())
|
||||
return programFiles86I2P.getAbsolutePath();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public boolean checkProgramFilesInstall() {
|
||||
String programFiles = System.getenv("PROGRAMFILES");
|
||||
if (programFiles != null) {
|
||||
File programFilesI2P = new File(programFiles, "i2p/i2p.exe");
|
||||
if (programFilesI2P.exists())
|
||||
return true;
|
||||
}
|
||||
String programFiles86 = System.getenv("PROGRAMFILES86");
|
||||
if (programFiles86 != null) {
|
||||
File programFiles86I2P = new File(programFiles86, "i2p/i2p.exe");
|
||||
if (programFiles86I2P.exists())
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean promptUserInstallStartIfAvailable() {
|
||||
if (osName() != "windows") {
|
||||
return true;
|
||||
}
|
||||
if (checkProgramFilesInstall()) {
|
||||
int a;
|
||||
String message =
|
||||
"It appears you have an existing, unbundled I2P rotuer installed.\n";
|
||||
message +=
|
||||
"However, it is not running yet. Please start it using the shortcut on the desktop.\n";
|
||||
message +=
|
||||
"If you click \"No\", the Easy-Install router will be launched instead.\n";
|
||||
a = JOptionPane.showConfirmDialog(null, message,
|
||||
"I2P Service detected not running",
|
||||
JOptionPane.YES_NO_OPTION);
|
||||
if (a == JOptionPane.NO_OPTION) {
|
||||
// Do nothing here, this will continue on to launch a jpackaged router
|
||||
return true;
|
||||
} else {
|
||||
try {
|
||||
String pfi = getProgramFilesInstall();
|
||||
if (pfi != null)
|
||||
Runtime.getRuntime().exec(new String[] {pfi});
|
||||
} catch (IOException e) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* get the path to the binary of the app-image root by getting the path to
|
||||
* java.home and the OS, and traversing up to the app-image root based on that
|
||||
* information, then getting the binary path on a per-platform basis. The path
|
||||
* returned will be relative to the root.
|
||||
*
|
||||
* @return the app-image root
|
||||
*/
|
||||
protected String appImageExe() {
|
||||
File aih = appImageHome();
|
||||
if (aih != null) {
|
||||
// get the name of the aih directory itself, which will be the default
|
||||
// name of the executable as well
|
||||
String baseName = "I2P";
|
||||
switch (osName()) {
|
||||
case "windows":
|
||||
return baseName + ".exe";
|
||||
case "mac":
|
||||
case "linux":
|
||||
return "./bin/" + baseName;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
@ -24,7 +24,7 @@ import net.i2p.util.Log;
|
||||
* appdata
|
||||
* router.pid - the pid of the java process.
|
||||
*/
|
||||
public class WinLauncher extends WindowsAppUtil {
|
||||
public class WinLauncher extends I2PAppUtil {
|
||||
private final CopyConfigDir copyConfigDir;
|
||||
WinUpdatePostProcessor wupp = null;
|
||||
private Router i2pRouter;
|
||||
@ -104,7 +104,7 @@ public class WinLauncher extends WindowsAppUtil {
|
||||
}
|
||||
|
||||
private File programFile() {
|
||||
File programs = selectProgramFile();
|
||||
File programs = selectHome();
|
||||
if (!programs.exists())
|
||||
programs.mkdirs();
|
||||
else if (!programs.isDirectory()) {
|
||||
|
@ -19,15 +19,7 @@ public class WindowsAppUtil extends WindowsServiceUtil {
|
||||
}
|
||||
|
||||
protected File selectHome() { // throws Exception {
|
||||
File i2p = checkPathEnvironmentVariable("I2P_CONFIG");
|
||||
String path_override = System.getenv("I2P_CONFIG");
|
||||
if (i2p == null)
|
||||
i2p = appImageHome();
|
||||
return i2p;
|
||||
}
|
||||
|
||||
protected File selectProgramFile() {
|
||||
File i2p = checkPathEnvironmentVariable("I2P");
|
||||
File i2p = checkPathEnvironmentVariable("JPACKAGE_HOME");
|
||||
if (i2p == null)
|
||||
i2p = appImageHome();
|
||||
return i2p;
|
||||
@ -90,12 +82,15 @@ public class WindowsAppUtil extends WindowsServiceUtil {
|
||||
protected String appImageExe() {
|
||||
File aih = appImageHome();
|
||||
if (aih != null) {
|
||||
// get the name of the aih directory itself, which will be the default
|
||||
// name of the executable as well
|
||||
String baseName = aih.getName();
|
||||
switch (osName()) {
|
||||
case "windows":
|
||||
return "I2P.exe";
|
||||
return baseName + ".exe";
|
||||
case "mac":
|
||||
case "linux":
|
||||
return "./bin/I2P";
|
||||
return "./bin/" + baseName;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
|
@ -145,87 +145,13 @@ public class WindowsServiceUtil {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return isStart("i2p");
|
||||
return isStart(serviceName);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public String ServiceUpdaterString() {
|
||||
return "http://tc73n4kivdroccekirco7rhgxdg5f3cjvbaapabupeyzrqwv5guq.b32.i2p/news.su3";
|
||||
}
|
||||
public String ServiceBackupUpdaterString() {
|
||||
return "http://dn3tvalnjz432qkqsvpfdqrwpqkw3ye4n4i2uyfr4jexvo3sp5ka.b32.i2p/news.su3";
|
||||
}
|
||||
public String ServiceStaticUpdaterString() {
|
||||
return "http://echelon.i2p/i2p/i2pupdate.sud,http://stats.i2p/i2p/i2pupdate.sud";
|
||||
}
|
||||
|
||||
public String getProgramFilesInstall() {
|
||||
String programFiles = System.getenv("PROGRAMFILES");
|
||||
if (programFiles != null) {
|
||||
File programFilesI2P = new File(programFiles, "i2p/i2p.exe");
|
||||
if (programFilesI2P.exists())
|
||||
return programFilesI2P.getAbsolutePath();
|
||||
}
|
||||
String programFiles86 = System.getenv("PROGRAMFILES86");
|
||||
if (programFiles86 != null) {
|
||||
File programFiles86I2P = new File(programFiles86, "i2p/i2p.exe");
|
||||
if (programFiles86I2P.exists())
|
||||
return programFiles86I2P.getAbsolutePath();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public boolean checkProgramFilesInstall() {
|
||||
String programFiles = System.getenv("PROGRAMFILES");
|
||||
if (programFiles != null) {
|
||||
File programFilesI2P = new File(programFiles, "i2p/i2p.exe");
|
||||
if (programFilesI2P.exists())
|
||||
return true;
|
||||
}
|
||||
String programFiles86 = System.getenv("PROGRAMFILES86");
|
||||
if (programFiles86 != null) {
|
||||
File programFiles86I2P = new File(programFiles86, "i2p/i2p.exe");
|
||||
if (programFiles86I2P.exists())
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean promptUserInstallStartIfAvailable() {
|
||||
if (osName() != "windows") {
|
||||
return true;
|
||||
}
|
||||
if (checkProgramFilesInstall()) {
|
||||
int a;
|
||||
String message =
|
||||
"It appears you have an existing, unbundled I2P rotuer installed.\n";
|
||||
message +=
|
||||
"However, it is not running yet. Please start it using the shortcut on the desktop.\n";
|
||||
message +=
|
||||
"If you click \"No\", the Easy-Install router will be launched instead.\n";
|
||||
a = JOptionPane.showConfirmDialog(null, message,
|
||||
"I2P Service detected not running",
|
||||
JOptionPane.YES_NO_OPTION);
|
||||
if (a == JOptionPane.NO_OPTION) {
|
||||
// Do nothing here, this will continue on to launch a jpackaged router
|
||||
return true;
|
||||
} else {
|
||||
try {
|
||||
String pfi = getProgramFilesInstall();
|
||||
if (pfi != null)
|
||||
Runtime.getRuntime().exec(new String[] {pfi});
|
||||
} catch (IOException e) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public String getServiceState(String serviceName) {
|
||||
String stateString = "uninstalled";
|
||||
int state = getServiceStateInt(serviceName);
|
||||
|
Reference in New Issue
Block a user