1
0
Dieser Commit ist enthalten in:
Chaoscaot 2022-01-01 21:24:10 +01:00
Commit 6a3c77ce62
14 geänderte Dateien mit 335 neuen und 0 gelöschten Zeilen

87
.gitignore vendored Normale Datei
Datei anzeigen

@ -0,0 +1,87 @@
### Maven template
target/
pom.xml.tag
pom.xml.releaseBackup
pom.xml.versionsBackup
pom.xml.next
release.properties
dependency-reduced-pom.xml
buildNumber.properties
.mvn/timing.properties
# https://github.com/takari/maven-wrapper#usage-without-binary-jar
.mvn/wrapper/maven-wrapper.jar
### JetBrains template
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider
# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
# User-specific stuff
.idea/**/workspace.xml
.idea/**/tasks.xml
.idea/**/usage.statistics.xml
.idea/**/dictionaries
.idea/**/shelf
# Generated files
.idea/**/contentModel.xml
# Sensitive or high-churn files
.idea/**/dataSources/
.idea/**/dataSources.ids
.idea/**/dataSources.local.xml
.idea/**/sqlDataSources.xml
.idea/**/dynamic.xml
.idea/**/uiDesigner.xml
.idea/**/dbnavigator.xml
# Gradle
.idea/**/gradle.xml
.idea/**/libraries
# Gradle and Maven with auto-import
# When using Gradle or Maven with auto-import, you should exclude module files,
# since they will be recreated, and may cause churn. Uncomment if using
# auto-import.
# .idea/artifacts
# .idea/compiler.xml
# .idea/jarRepositories.xml
# .idea/modules.xml
# .idea/*.iml
# .idea/modules
# *.iml
# *.ipr
# CMake
cmake-build-*/
# Mongo Explorer plugin
.idea/**/mongoSettings.xml
# File-based project format
*.iws
# IntelliJ
out/
# mpeltonen/sbt-idea plugin
.idea_modules/
# JIRA plugin
atlassian-ide-plugin.xml
# Cursive Clojure plugin
.idea/replstate.xml
# Crashlytics plugin (for Android Studio and IntelliJ)
com_crashlytics_export_strings.xml
crashlytics.properties
crashlytics-build.properties
fabric.properties
# Editor-based Rest Client
.idea/httpRequests
# Android studio 3.1+ serialized cache file
.idea/caches/build_file_checksums.ser
./.idea

Datei anzeigen

11
config.json Normale Datei
Datei anzeigen

@ -0,0 +1,11 @@
{
"projectPath": "~/IdeaProjects/",
"libPath": "~/libs/",
"defaultName": "default",
"libUrl": "https://steamwar.de/lib.php",
"additionalArgs": ["-d"],
"credentials": {
"username": "[EnterName]",
"password": "[EnterPW]"
}
}

92
pom.xml Normale Datei
Datei anzeigen

@ -0,0 +1,92 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>de.chaos</groupId>
<artifactId>swlnmngr</artifactId>
<version>1.0-SNAPSHOT</version>
<name>SteamWarLinkManager</name>
<properties>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
</properties>
<build>
<defaultGoal>clean package</defaultGoal>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<shadedArtifactAttached>true</shadedArtifactAttached>
<transformers>
<transformer implementation=
"org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>de.chaos.swlnmngr.Main</mainClass>
</transformer>
</transformers>
<finalName>${name}</finalName>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>*.*</include>
</includes>
<filtering>false</filtering>
</resource>
</resources>
<finalName>${name}-noshade</finalName>
</build>
<dependencies>
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20211205</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13.2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.22</version>
</dependency>
<dependency>
<groupId>commons-cli</groupId>
<artifactId>commons-cli</artifactId>
<version>1.5.0</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.17.1</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.17.1</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.13</version>
</dependency>
</dependencies>
</project>

Datei anzeigen

@ -0,0 +1,30 @@
package de.chaos.swlnmngr;
import de.chaos.swlnmngr.config.CLIConfig;
import de.chaos.swlnmngr.config.Config;
import lombok.Getter;
import org.apache.logging.log4j.Level;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.apache.logging.log4j.core.config.Configurator;
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) {
logger.log(Level.INFO, "SteamWarLinkManager by Chaoscaot");
allArgs = new String[args.length + Config.ADDITIONAL_ARGS.length];
System.arraycopy(args, 0, allArgs, 0, args.length);
System.arraycopy(Config.ADDITIONAL_ARGS, 0, allArgs, args.length, Config.ADDITIONAL_ARGS.length);
if(CLIConfig.IS_DEBUG) {
Configurator.setRootLevel(Level.DEBUG);
}
logger.debug("Arguments: {}", Arrays.toString(allArgs));
}
}

Datei anzeigen

@ -0,0 +1,33 @@
package de.chaos.swlnmngr.config;
import de.chaos.swlnmngr.Main;
import org.apache.commons.cli.*;
public class CLIConfig {
public static final boolean IS_DEBUG;
public static final boolean UPDATE;
public static final String[] ARGS;
static {
Options options = new Options();
options.addOption(new Option("d", "debug", false, "Set the Log Level to Debug"));
options.addOption(new Option("u", "update", false, "Update the Default libs"));
CommandLine cli = null;
CommandLineParser parser = new DefaultParser();
HelpFormatter formatter = new HelpFormatter();
try {
cli = parser.parse(options, Main.getAllArgs());
} catch (ParseException e) {
Main.getLogger().error(e.getMessage());
formatter.printHelp("swlnmngr", options, true);
System.exit(1);
}
ARGS = cli.getArgs();
IS_DEBUG = cli.hasOption("d");
UPDATE = cli.hasOption("u");
}
}

Datei anzeigen

@ -0,0 +1,37 @@
package de.chaos.swlnmngr.config;
import de.chaos.swlnmngr.Main;
import org.json.JSONObject;
import org.json.JSONTokener;
import java.io.File;
import java.io.FileInputStream;
import java.nio.file.Files;
import java.nio.file.StandardOpenOption;
public class Config {
private static final File CONFIG_FILE = new File("config.json");
public static final String[] ADDITIONAL_ARGS;
static {
JSONObject config = null;
try {
if(!CONFIG_FILE.exists()) {
Files.write(CONFIG_FILE.toPath(), Config.class.getResourceAsStream("/default_config.json").readAllBytes(), StandardOpenOption.CREATE_NEW);
}
config = new JSONObject(new JSONTokener(new FileInputStream(CONFIG_FILE)));
} catch (Exception e) {
Main.getLogger().fatal("Could not load Config", e);
System.exit(1);
}
ADDITIONAL_ARGS = config.getJSONArray("additionalArgs").toList().toArray(new String[0]);
}
public static void reset() {
}
}

Datei anzeigen

@ -0,0 +1,4 @@
package de.chaos.swlnmngr.route;
public class Router {
}

Datei anzeigen

@ -0,0 +1,7 @@
package de.chaos.swlnmngr.route.routes;
public interface Route {
String getName();
boolean route(String[] args);
}

Datei anzeigen

@ -0,0 +1,5 @@
package de.chaos.swlnmngr.route.routes;
public enum Routes {
}

Datei anzeigen

@ -0,0 +1,11 @@
{
"projectPath": "~/IdeaProjects/",
"libPath": "~/libs/",
"defaultName": "default",
"libUrl": "https://steamwar.de/lib.php",
"additionalArgs": [],
"credentials": {
"username": "[EnterName]",
"password": "[EnterPW]"
}
}

Datei anzeigen

Datei anzeigen

Datei anzeigen

@ -0,0 +1,18 @@
<Configuration xmlns="http://logging.apache.org/log4j/2.0/config">
<Appenders>
<Console name="STDOUT" target="SYSTEM_OUT">
<PatternLayout pattern="%d{HH:mm:ss} [%level]: %msg%n"/>
</Console>
</Appenders>
<Loggers>
<Logger name="org.apache.hc.client5.http" level="DEBUG">
<AppenderRef ref="STDOUT"/>
</Logger>
<Logger name="org.apache.hc.client5.http.wire" level="DEBUG">
<AppenderRef ref="STDOUT"/>
</Logger>
<Root level="INFO">
<AppenderRef ref="STDOUT" />
</Root>
</Loggers>
</Configuration>