1
0

Fixing more Stuff

Dieser Commit ist enthalten in:
Chaos 2022-01-11 21:18:23 +01:00
Ursprung bc1d50fb8e
Commit 8659bce671
6 geänderte Dateien mit 39 neuen und 22 gelöschten Zeilen

Datei anzeigen

@ -67,12 +67,6 @@
<artifactId>json</artifactId>
<version>20211205</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.22</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>commons-cli</groupId>
<artifactId>commons-cli</artifactId>

Datei anzeigen

@ -2,7 +2,6 @@ package de.chaos.swlnmngr;
import de.chaos.swlnmngr.config.CLIConfig;
import de.chaos.swlnmngr.route.Router;
import lombok.Getter;
import org.apache.logging.log4j.Level;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
@ -12,9 +11,7 @@ import java.util.Arrays;
public class Main {
@Getter
private static final Logger logger = LogManager.getLogger(Main.class);
@Getter
private static String[] allArgs;
public static void main(String[] args) {
@ -33,4 +30,12 @@ public class Main {
Router.printRoutes();
}
}
public static Logger getLogger() {
return logger;
}
public static String[] getAllArgs() {
return allArgs;
}
}

Datei anzeigen

@ -1,7 +1,6 @@
package de.chaos.swlnmngr;
import de.chaos.swlnmngr.config.Config;
import lombok.experimental.UtilityClass;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.CloseableHttpClient;
@ -13,9 +12,10 @@ import org.json.JSONTokener;
import java.io.IOException;
import java.net.URI;
@UtilityClass
public class UpdateChecker {
private UpdateChecker() {}
private static final URI repoUrl = URI.create("https://steamwar.de/devlabs/api/v1/repos/Chaoscaot/SteamwarLinkManager/releases?draft=false&pre-release=" + Config.PRE_RELEASES + "&page=1&limit=1");
public static final String CURRENT_VERSION;

Datei anzeigen

@ -4,6 +4,8 @@ import de.chaos.swlnmngr.Main;
import org.apache.commons.cli.*;
import java.io.File;
import java.io.IOException;
import java.net.URISyntaxException;
public class CLIConfig {
@ -12,6 +14,7 @@ public class CLIConfig {
public static final File CONFIG;
public static final File INSTALL_DIR;
public static final String[] ARGS;
public static final boolean INSTALL_DIR_IS_SET;
static {
Options options = new Options();
@ -43,8 +46,20 @@ public class CLIConfig {
NO_UPDATE = cli.hasOption("u");
if(cli.hasOption("i")) {
INSTALL_DIR = new File(cli.getOptionValue("i"));
INSTALL_DIR_IS_SET = true;
} else {
INSTALL_DIR = new File(System.getProperty("user.home"), ".swlnmngr/").toPath().normalize().toFile();
try {
INSTALL_DIR = new File(CLIConfig.class.getProtectionDomain()
.getCodeSource()
.getLocation()
.toURI()
.getPath())
.getCanonicalFile();
INSTALL_DIR_IS_SET = false;
} catch (IOException | URISyntaxException e) {
Main.getLogger().error(e.getMessage(), e);
throw new SecurityException(e);
}
}
if(cli.hasOption("c")) {
CONFIG = new File(cli.getOptionValue("c"));

Datei anzeigen

@ -7,7 +7,6 @@ import org.json.JSONObject;
import org.json.JSONTokener;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.net.URISyntaxException;
import java.nio.charset.StandardCharsets;
@ -28,9 +27,12 @@ public class InstallRoute implements Route {
@Override
public boolean route(String[] args) {
File installDir = CLIConfig.INSTALL_DIR;
if (!CLIConfig.INSTALL_DIR_IS_SET) {
installDir = new File(System.getProperty("user.home", ".swlnmngr"));
}
if(!installDir.exists()) {
try {
Files.createDirectories(CLIConfig.INSTALL_DIR.toPath());
Files.createDirectories(installDir.toPath());
} catch (IOException e) {
Main.getLogger().error("Could not create Install Directory", e);
return false;
@ -40,8 +42,8 @@ public class InstallRoute implements Route {
for (String defaultFile : defaultFiles) {
String normalName = defaultFile.replace("default_", "");
try {
Files.copy(Objects.requireNonNull(InstallRoute.class.getResourceAsStream("/" + defaultFile)), new File(CLIConfig.INSTALL_DIR, normalName).toPath(), StandardCopyOption.REPLACE_EXISTING);
new File(CLIConfig.INSTALL_DIR, normalName).setExecutable(true, true);
Files.copy(Objects.requireNonNull(InstallRoute.class.getResourceAsStream("/" + defaultFile)), new File(installDir, normalName).toPath(), StandardCopyOption.REPLACE_EXISTING);
new File(installDir, normalName).setExecutable(true, true);
} catch (IOException e) {
Main.getLogger().error("Could not create File", e);
return false;
@ -50,16 +52,16 @@ public class InstallRoute implements Route {
if(SystemUtils.IS_OS_UNIX) {
try {
Files.deleteIfExists(new File(CLIConfig.INSTALL_DIR, "swlnmngr").toPath());
Files.createSymbolicLink(new File(CLIConfig.INSTALL_DIR, "swlnmngr").toPath(), new File(CLIConfig.INSTALL_DIR, "swlnmngr.sh").toPath());
Files.deleteIfExists(new File(installDir, "swlnmngr").toPath());
Files.createSymbolicLink(new File(installDir, "swlnmngr").toPath(), new File(installDir, "swlnmngr.sh").toPath());
} catch (IOException e) {
Main.getLogger().error("Could not create SymLink", e);
return false;
}
} else if(SystemUtils.IS_OS_WINDOWS) {
try {
Files.writeString(new File(CLIConfig.INSTALL_DIR, "swlnmngr.bat").toPath(), Files.readString(new File(CLIConfig.INSTALL_DIR, "swlnmngr.bat").toPath()).replace("${iDir}", CLIConfig.INSTALL_DIR.getAbsolutePath()), StandardCharsets.UTF_8, StandardOpenOption.TRUNCATE_EXISTING);
Files.writeString(new File(CLIConfig.INSTALL_DIR, "swlnmngr_admin.bat").toPath(), Files.readString(new File(CLIConfig.INSTALL_DIR, "swlnmngr_admin.bat").toPath()).replace("${iDir}", CLIConfig.INSTALL_DIR.getAbsolutePath()), StandardCharsets.UTF_8, StandardOpenOption.TRUNCATE_EXISTING);
Files.writeString(new File(installDir, "swlnmngr.bat").toPath(), Files.readString(new File(installDir, "swlnmngr.bat").toPath()).replace("${iDir}", installDir.getAbsolutePath()), StandardCharsets.UTF_8, StandardOpenOption.TRUNCATE_EXISTING);
Files.writeString(new File(installDir, "swlnmngr_admin.bat").toPath(), Files.readString(new File(installDir, "swlnmngr_admin.bat").toPath()).replace("${iDir}", installDir.getAbsolutePath()), StandardCharsets.UTF_8, StandardOpenOption.TRUNCATE_EXISTING);
} catch (IOException e) {
Main.getLogger().error("Could not create Link", e);
return false;
@ -104,7 +106,7 @@ public class InstallRoute implements Route {
try {
File jar = new File(getClass().getProtectionDomain().getCodeSource().getLocation().toURI());
Main.getLogger().debug(jar);
Files.copy(jar.toPath(), new File(CLIConfig.INSTALL_DIR, "SteamWarLinkManager.jar").toPath(), StandardCopyOption.REPLACE_EXISTING);
Files.copy(jar.toPath(), new File(installDir, "SteamWarLinkManager.jar").toPath(), StandardCopyOption.REPLACE_EXISTING);
} catch (URISyntaxException e) {
Main.getLogger().error("Could parse Jar Location", e);
return false;

Datei anzeigen

@ -1,6 +1,7 @@
@echo off
:: Variables
SET JavaHome=java
SET Home=${iDir}
:: Code
title Request Admin
@ -11,6 +12,6 @@ title SteamWarLinkManager
set args=--help
set /p args=Arguments:
echo %args%
%JavaHome% -jar ${iDir}\SteamWarLinkManager.jar %args% %*
%JavaHome% -jar ${iDir}\SteamWarLinkManager.jar %args% %* -i %Home%
pause
exit