fix the router.config file for the user if they installed un-bundled after bundled
This commit is contained in:
@ -88,25 +88,6 @@ public class WinLauncher extends CopyConfigDir {
|
|||||||
File programs = programFile();
|
File programs = programFile();
|
||||||
File home = homeDir();
|
File home = homeDir();
|
||||||
|
|
||||||
boolean continuerunning = promptServiceStartIfAvailable("i2p");
|
|
||||||
if (!continuerunning) {
|
|
||||||
logger.severe(
|
|
||||||
"Service startup failure, please start I2P service with services.msc");
|
|
||||||
System.exit(2);
|
|
||||||
}
|
|
||||||
continuerunning = promptUserInstallStartIfAvailable();
|
|
||||||
if (!continuerunning) {
|
|
||||||
logger.severe("User-install startup required.");
|
|
||||||
System.exit(2);
|
|
||||||
}
|
|
||||||
|
|
||||||
// This actually does most of what we use NSIS for if NSIS hasn't
|
|
||||||
// already done it, which essentially makes this whole thing portable.
|
|
||||||
if (!copyConfigDir()) {
|
|
||||||
logger.severe("Cannot copy the configuration directory");
|
|
||||||
System.exit(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
System.setProperty("i2p.dir.base", programs.getAbsolutePath());
|
System.setProperty("i2p.dir.base", programs.getAbsolutePath());
|
||||||
System.setProperty("i2p.dir.config", home.getAbsolutePath());
|
System.setProperty("i2p.dir.config", home.getAbsolutePath());
|
||||||
System.setProperty("router.pid",
|
System.setProperty("router.pid",
|
||||||
@ -122,6 +103,29 @@ public class WinLauncher extends CopyConfigDir {
|
|||||||
logger.info("\t" + System.getProperty("i2p.dir.base"));
|
logger.info("\t" + System.getProperty("i2p.dir.base"));
|
||||||
logger.info("\t" + System.getProperty("i2p.dir.config"));
|
logger.info("\t" + System.getProperty("i2p.dir.config"));
|
||||||
logger.info("\t" + System.getProperty("router.pid"));
|
logger.info("\t" + System.getProperty("router.pid"));
|
||||||
|
boolean continuerunning = promptServiceStartIfAvailable("i2p");
|
||||||
|
if (!continuerunning) {
|
||||||
|
logger.severe(
|
||||||
|
"Service startup failure, please start I2P service with services.msc");
|
||||||
|
System.exit(2);
|
||||||
|
} else {
|
||||||
|
fixServiceConfig();
|
||||||
|
}
|
||||||
|
continuerunning = promptUserInstallStartIfAvailable();
|
||||||
|
if (!continuerunning) {
|
||||||
|
logger.severe("User-install startup required.");
|
||||||
|
System.exit(2);
|
||||||
|
} else {
|
||||||
|
fixServiceConfig();
|
||||||
|
}
|
||||||
|
|
||||||
|
// This actually does most of what we use NSIS for if NSIS hasn't
|
||||||
|
// already done it, which essentially makes this whole thing portable.
|
||||||
|
if (!copyConfigDir()) {
|
||||||
|
logger.severe("Cannot copy the configuration directory");
|
||||||
|
System.exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
if (launchBrowser(privateBrowsing, usabilityMode, chromiumFirst,
|
if (launchBrowser(privateBrowsing, usabilityMode, chromiumFirst,
|
||||||
proxyTimeoutTime, newArgsList)) {
|
proxyTimeoutTime, newArgsList)) {
|
||||||
System.exit(0);
|
System.exit(0);
|
||||||
@ -148,6 +152,40 @@ public class WinLauncher extends CopyConfigDir {
|
|||||||
i2pRouter.runRouter();
|
i2pRouter.runRouter();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static void fixServiceConfig() {
|
||||||
|
// If the user installed the Easy bundle before installing the
|
||||||
|
// regulalr bundle, then they have a config file which contains the
|
||||||
|
// wrong update URL. Check for it, and change it back if necessary.
|
||||||
|
i2pRouter = new Router(routerConfig(), System.getProperties());
|
||||||
|
if (isInstalled("i2p") || checkProgramFilesInstall()) {
|
||||||
|
if (i2pRouter.getConfig("router.newsURL").contains("win/beta")) {
|
||||||
|
logger.info(
|
||||||
|
"checked router.newsURL config, containes win/beta in a service install, invalid update type");
|
||||||
|
if (i2pRouter.saveConfig("router.newsURL", ServiceUpdaterString())) {
|
||||||
|
logger.info("updated routerconsole.browser config " + appImageExe());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (i2pRouter.getConfig("router.backupNewsURL").contains("win/beta")) {
|
||||||
|
logger.info(
|
||||||
|
"checked router.backupNewsURL config, containes win/beta in a service install, invalid update type");
|
||||||
|
if (i2pRouter.saveConfig("router.backupNewsURL",
|
||||||
|
ServiceUpdaterString())) {
|
||||||
|
logger.info("updated routerconsole.browser config " + appImageExe());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
String updateURL = i2pRouter.getConfig("router.updateURL")
|
||||||
|
if (updateURL
|
||||||
|
.contains("i2pwinupdate.su3")) {
|
||||||
|
logger.info(
|
||||||
|
"checked router.updateURL config, containes win/beta in a service install, invalid update type");
|
||||||
|
if (i2pRouter.saveConfig("router.updateURL",
|
||||||
|
ServerStaticUpdaterString())) {
|
||||||
|
logger.info("updated routerconsole.browser config " + appImageExe());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private static void setupLauncher() {
|
private static void setupLauncher() {
|
||||||
File jrehome = javaHome();
|
File jrehome = javaHome();
|
||||||
logger.info("jre home is: " + jrehome.getAbsolutePath());
|
logger.info("jre home is: " + jrehome.getAbsolutePath());
|
||||||
|
@ -131,16 +131,17 @@ public class WindowsServiceUtil {
|
|||||||
// user can start the service themselves. OR maybe we ask for
|
// user can start the service themselves. OR maybe we ask for
|
||||||
// elevation here? May need to refactor Elevator and Shell32X to
|
// elevation here? May need to refactor Elevator and Shell32X to
|
||||||
// achieve it though
|
// achieve it though
|
||||||
ProcessBuilder pb = new ProcessBuilder("C:\\Windows\\System32\\services.msc");
|
ProcessBuilder pb =
|
||||||
try{
|
new ProcessBuilder("C:\\Windows\\System32\\services.msc");
|
||||||
|
try {
|
||||||
Process p = pb.start();
|
Process p = pb.start();
|
||||||
int exitCode = p.waitFor();
|
int exitCode = p.waitFor();
|
||||||
if (exitCode != 0){
|
if (exitCode != 0) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}catch(IOException e){
|
} catch (IOException e) {
|
||||||
return false;
|
return false;
|
||||||
}catch(InterruptedException e){
|
} catch (InterruptedException e) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -154,27 +155,39 @@ public class WindowsServiceUtil {
|
|||||||
public static String ServiceUpdaterString() {
|
public static String ServiceUpdaterString() {
|
||||||
return "http://tc73n4kivdroccekirco7rhgxdg5f3cjvbaapabupeyzrqwv5guq.b32.i2p/news.su3";
|
return "http://tc73n4kivdroccekirco7rhgxdg5f3cjvbaapabupeyzrqwv5guq.b32.i2p/news.su3";
|
||||||
}
|
}
|
||||||
|
public static String ServiceStaticUpdaterString() {
|
||||||
|
return "http://echelon.i2p/i2p/i2pupdate.sud,http://stats.i2p/i2p/i2pupdate.sud";
|
||||||
|
}
|
||||||
|
|
||||||
public static String getProgramFilesInstall() {
|
public static String getProgramFilesInstall() {
|
||||||
String programFiles = System.getenv("PROGRAMFILES");
|
String programFiles = System.getenv("PROGRAMFILES");
|
||||||
File programFilesI2P = new File(programFiles, "i2p/i2p.exe");
|
if (programFiles != null) {
|
||||||
if (programFilesI2P.exists())
|
File programFilesI2P = new File(programFiles, "i2p/i2p.exe");
|
||||||
return programFilesI2P.getAbsolutePath();
|
if (programFilesI2P.exists())
|
||||||
|
return programFilesI2P.getAbsolutePath();
|
||||||
|
}
|
||||||
String programFiles86 = System.getenv("PROGRAMFILES86");
|
String programFiles86 = System.getenv("PROGRAMFILES86");
|
||||||
File programFiles86I2P = new File(programFiles86, "i2p/i2p.exe");
|
if (programFiles86 != null) {
|
||||||
if (programFiles86I2P.exists())
|
File programFiles86I2P = new File(programFiles86, "i2p/i2p.exe");
|
||||||
return programFiles86I2P.getAbsolutePath();
|
if (programFiles86I2P.exists())
|
||||||
|
return programFiles86I2P.getAbsolutePath();
|
||||||
|
}
|
||||||
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean checkProgramFilesInstall() {
|
public static boolean checkProgramFilesInstall() {
|
||||||
String programFiles = System.getenv("PROGRAMFILES");
|
String programFiles = System.getenv("PROGRAMFILES");
|
||||||
File programFilesI2P = new File(programFiles, "i2p/i2p.exe");
|
if (programFiles != null) {
|
||||||
if (programFilesI2P.exists())
|
File programFilesI2P = new File(programFiles, "i2p/i2p.exe");
|
||||||
return true;
|
if (programFilesI2P.exists())
|
||||||
|
return true;
|
||||||
|
}
|
||||||
String programFiles86 = System.getenv("PROGRAMFILES86");
|
String programFiles86 = System.getenv("PROGRAMFILES86");
|
||||||
File programFiles86I2P = new File(programFiles86, "i2p/i2p.exe");
|
if (programFiles86 != null) {
|
||||||
if (programFiles86I2P.exists())
|
File programFiles86I2P = new File(programFiles86, "i2p/i2p.exe");
|
||||||
return true;
|
if (programFiles86I2P.exists())
|
||||||
|
return true;
|
||||||
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -198,7 +211,9 @@ public class WindowsServiceUtil {
|
|||||||
return true;
|
return true;
|
||||||
} else {
|
} else {
|
||||||
try {
|
try {
|
||||||
Runtime.getRuntime().exec(getProgramFilesInstall());
|
String pfi = getProgramFilesInstall();
|
||||||
|
if (pfi != null)
|
||||||
|
Runtime.getRuntime().exec(pfi);
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user