[FEATURE] SimpleEXELauncherBinary - альтернатива Launch4J

This commit is contained in:
Gravit 2019-07-12 20:43:56 +07:00
parent 3bf744debe
commit e0113ac595
2 changed files with 23 additions and 6 deletions

View file

@ -61,11 +61,7 @@
import pro.gravit.launchserver.auth.provider.RejectAuthProvider; import pro.gravit.launchserver.auth.provider.RejectAuthProvider;
import pro.gravit.launchserver.auth.texture.RequestTextureProvider; import pro.gravit.launchserver.auth.texture.RequestTextureProvider;
import pro.gravit.launchserver.auth.texture.TextureProvider; import pro.gravit.launchserver.auth.texture.TextureProvider;
import pro.gravit.launchserver.binary.EXEL4JLauncherBinary; import pro.gravit.launchserver.binary.*;
import pro.gravit.launchserver.binary.EXELauncherBinary;
import pro.gravit.launchserver.binary.JARLauncherBinary;
import pro.gravit.launchserver.binary.LauncherBinary;
import pro.gravit.launchserver.binary.ProguardConf;
import pro.gravit.launchserver.components.AuthLimiterComponent; import pro.gravit.launchserver.components.AuthLimiterComponent;
import pro.gravit.launchserver.components.Component; import pro.gravit.launchserver.components.Component;
import pro.gravit.launchserver.components.RegLimiterComponent; import pro.gravit.launchserver.components.RegLimiterComponent;
@ -256,6 +252,7 @@ public void close() {
public static class ExeConf { public static class ExeConf {
public boolean enabled; public boolean enabled;
public String alternative;
public boolean setMaxVersion; public boolean setMaxVersion;
public String maxVersion; public String maxVersion;
public String productName; public String productName;
@ -721,6 +718,19 @@ private LauncherBinary binary() {
LogHelper.error(e); LogHelper.error(e);
} }
} }
if(config.launch4j.alternative != null)
{
switch (config.launch4j.alternative) {
case "simple":
return new SimpleEXELauncherBinary(this);
case "no":
//None
break;
default:
LogHelper.warning("Alternative %s not found", config.launch4j.alternative);
break;
}
}
try { try {
Class.forName("net.sf.launch4j.Builder"); Class.forName("net.sf.launch4j.Builder");
if (config.launch4j.enabled) return new EXEL4JLauncherBinary(this); if (config.launch4j.enabled) return new EXEL4JLauncherBinary(this);
@ -766,6 +776,7 @@ private void generateConfigIfNotExists(boolean testEnv) throws IOException {
newConfig.launch4j = new ExeConf(); newConfig.launch4j = new ExeConf();
newConfig.launch4j.enabled = true; newConfig.launch4j.enabled = true;
newConfig.launch4j.copyright = "© GravitLauncher Team"; newConfig.launch4j.copyright = "© GravitLauncher Team";
newConfig.launch4j.alternative = "no";
newConfig.launch4j.fileDesc = "GravitLauncher ".concat(Version.getVersion().getVersionString()); newConfig.launch4j.fileDesc = "GravitLauncher ".concat(Version.getVersion().getVersionString());
newConfig.launch4j.fileVer = Version.getVersion().getVersionString().concat(".").concat(String.valueOf(Version.getVersion().patch)); newConfig.launch4j.fileVer = Version.getVersion().getVersionString().concat(".").concat(String.valueOf(Version.getVersion().patch));
newConfig.launch4j.internalName = "Launcher"; newConfig.launch4j.internalName = "Launcher";

View file

@ -2,6 +2,7 @@
import pro.gravit.launchserver.LaunchServer; import pro.gravit.launchserver.LaunchServer;
import pro.gravit.utils.helper.IOHelper; import pro.gravit.utils.helper.IOHelper;
import pro.gravit.utils.helper.LogHelper;
import java.io.IOException; import java.io.IOException;
import java.io.OutputStream; import java.io.OutputStream;
@ -9,13 +10,18 @@
public class SimpleEXELauncherBinary extends LauncherBinary { public class SimpleEXELauncherBinary extends LauncherBinary {
public Path exeTemplate; public Path exeTemplate;
protected SimpleEXELauncherBinary(LaunchServer server) { public SimpleEXELauncherBinary(LaunchServer server) {
super(server, LauncherBinary.resolve(server, ".exe")); super(server, LauncherBinary.resolve(server, ".exe"));
exeTemplate = server.dir.resolve("SimpleTemplate.exe"); exeTemplate = server.dir.resolve("SimpleTemplate.exe");
} }
@Override @Override
public void build() throws IOException { public void build() throws IOException {
if(!IOHelper.isFile(exeTemplate))
{
LogHelper.warning("[SimpleEXEBinary] File %s not found. %s not created", exeTemplate.toString(), syncBinaryFile.toString());
return;
}
try(OutputStream output = IOHelper.newOutput(syncBinaryFile)) try(OutputStream output = IOHelper.newOutput(syncBinaryFile))
{ {
IOHelper.transfer(exeTemplate, output); IOHelper.transfer(exeTemplate, output);