mirror of
https://github.com/GravitLauncher/Launcher
synced 2024-11-15 11:39:11 +03:00
Удаление легаси говнокода
This commit is contained in:
parent
9e0c94581c
commit
d2858f7c37
3 changed files with 1 additions and 152 deletions
|
@ -1,52 +1,18 @@
|
||||||
package ru.gravit.launchserver.binary;
|
package ru.gravit.launchserver.binary;
|
||||||
|
|
||||||
import static ru.gravit.utils.helper.IOHelper.newZipEntry;
|
|
||||||
|
|
||||||
import java.io.ByteArrayInputStream;
|
|
||||||
import java.io.ByteArrayOutputStream;
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.nio.file.FileVisitResult;
|
|
||||||
import java.nio.file.Files;
|
import java.nio.file.Files;
|
||||||
import java.nio.file.Path;
|
import java.nio.file.Path;
|
||||||
import java.nio.file.SimpleFileVisitor;
|
|
||||||
import java.nio.file.attribute.BasicFileAttributes;
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.Map.Entry;
|
|
||||||
import java.util.jar.JarFile;
|
|
||||||
import java.util.zip.ZipEntry;
|
|
||||||
import java.util.zip.ZipException;
|
|
||||||
import java.util.zip.ZipInputStream;
|
|
||||||
import java.util.zip.ZipOutputStream;
|
|
||||||
|
|
||||||
import javassist.CannotCompileException;
|
|
||||||
import javassist.NotFoundException;
|
|
||||||
import proguard.Configuration;
|
|
||||||
import proguard.ConfigurationParser;
|
|
||||||
import proguard.ParseException;
|
|
||||||
import proguard.ProGuard;
|
|
||||||
import ru.gravit.launcher.AutogenConfig;
|
|
||||||
import ru.gravit.launcher.Launcher;
|
|
||||||
import ru.gravit.launcher.LauncherConfig;
|
|
||||||
import ru.gravit.launcher.serialize.HOutput;
|
|
||||||
import ru.gravit.launchserver.LaunchServer;
|
import ru.gravit.launchserver.LaunchServer;
|
||||||
import ru.gravit.launchserver.asm.ClassMetadataReader;
|
|
||||||
import ru.gravit.launchserver.binary.tasks.LauncherBuildTask;
|
import ru.gravit.launchserver.binary.tasks.LauncherBuildTask;
|
||||||
import ru.gravit.launchserver.binary.tasks.MainBuildTask;
|
import ru.gravit.launchserver.binary.tasks.MainBuildTask;
|
||||||
import ru.gravit.launchserver.binary.tasks.ProGuardBuildTask;
|
import ru.gravit.launchserver.binary.tasks.ProGuardBuildTask;
|
||||||
import ru.gravit.launchserver.binary.tasks.UnpackBuildTask;
|
import ru.gravit.launchserver.binary.tasks.UnpackBuildTask;
|
||||||
import ru.gravit.launchserver.manangers.hook.BuildHookManager.ZipBuildHook;
|
|
||||||
import ru.gravit.utils.helper.CommonHelper;
|
|
||||||
import ru.gravit.utils.helper.IOHelper;
|
import ru.gravit.utils.helper.IOHelper;
|
||||||
import ru.gravit.utils.helper.LogHelper;
|
import ru.gravit.utils.helper.LogHelper;
|
||||||
import ru.gravit.utils.helper.SecurityHelper;
|
|
||||||
import ru.gravit.utils.helper.SecurityHelper.DigestAlgorithm;
|
|
||||||
import ru.gravit.utils.helper.UnpackHelper;
|
|
||||||
|
|
||||||
public final class JARLauncherBinary extends LauncherBinary {
|
public final class JARLauncherBinary extends LauncherBinary {
|
||||||
//public ClassMetadataReader reader;
|
|
||||||
public ArrayList<LauncherBuildTask> tasks;
|
public ArrayList<LauncherBuildTask> tasks;
|
||||||
public JARLauncherBinary(LaunchServer server) throws IOException {
|
public JARLauncherBinary(LaunchServer server) throws IOException {
|
||||||
super(server);
|
super(server);
|
||||||
|
@ -55,16 +21,6 @@ public JARLauncherBinary(LaunchServer server) throws IOException {
|
||||||
tasks.add(new MainBuildTask());
|
tasks.add(new MainBuildTask());
|
||||||
if(server.config.enabledProGuard) tasks.add(new ProGuardBuildTask());
|
if(server.config.enabledProGuard) tasks.add(new ProGuardBuildTask());
|
||||||
syncBinaryFile = server.dir.resolve(server.config.binaryName + ".jar");
|
syncBinaryFile = server.dir.resolve(server.config.binaryName + ".jar");
|
||||||
/*runtimeDir = server.dir.resolve(Launcher.RUNTIME_DIR);
|
|
||||||
guardDir = server.dir.resolve(Launcher.GUARD_DIR);
|
|
||||||
initScriptFile = runtimeDir.resolve(Launcher.INIT_SCRIPT_FILE);
|
|
||||||
obfJar = server.dir.resolve(server.config.binaryName + "-obfPre.jar");
|
|
||||||
obfOutJar = server.config.buildPostTransform.enabled ? server.dir.resolve(server.config.binaryName + "-obf.jar")
|
|
||||||
: syncBinaryFile;
|
|
||||||
cleanJar = server.dir.resolve(server.config.binaryName + "-clean.jar");
|
|
||||||
reader = new ClassMetadataReader();
|
|
||||||
UnpackHelper.unpack(IOHelper.getResourceURL("Launcher.jar"), cleanJar);
|
|
||||||
reader.getCp().add(new JarFile(cleanJar.toFile()));*/
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -90,53 +46,5 @@ public void build() throws IOException {
|
||||||
long time_end = System.currentTimeMillis();
|
long time_end = System.currentTimeMillis();
|
||||||
IOHelper.move(thisPath, syncBinaryFile);
|
IOHelper.move(thisPath, syncBinaryFile);
|
||||||
LogHelper.info("Build successful from %d millis",time_end - time_start);
|
LogHelper.info("Build successful from %d millis",time_end - time_start);
|
||||||
|
|
||||||
// ProGuard
|
|
||||||
|
|
||||||
/*for (Runnable r : server.buildHookManager.getPostProguardRunHooks())
|
|
||||||
r.run();
|
|
||||||
try (ZipInputStream input = new ZipInputStream(IOHelper.newInput(obfJar));
|
|
||||||
ZipOutputStream output = new ZipOutputStream(IOHelper.newOutput(obfOutJar))) {
|
|
||||||
ZipEntry e = input.getNextEntry();
|
|
||||||
while (e != null) {
|
|
||||||
String filename = e.getName();
|
|
||||||
output.putNextEntry(IOHelper.newZipEntry(e));
|
|
||||||
if (filename.endsWith(".class")) {
|
|
||||||
String classname = filename.replace('/', '.').substring(0, filename.length() - ".class".length());
|
|
||||||
byte[] bytes;
|
|
||||||
try (ByteArrayOutputStream outputStream = new ByteArrayOutputStream(2048)) {
|
|
||||||
IOHelper.transfer(input, outputStream);
|
|
||||||
bytes = outputStream.toByteArray();
|
|
||||||
}
|
|
||||||
//bytes = server.buildHookManager.proGuardClassTransform(bytes, classname, this);
|
|
||||||
try (ByteArrayInputStream inputStream = new ByteArrayInputStream(bytes)) {
|
|
||||||
IOHelper.transfer(inputStream, output);
|
|
||||||
}
|
|
||||||
} else
|
|
||||||
IOHelper.transfer(input, output);
|
|
||||||
e = input.getNextEntry();
|
|
||||||
}
|
|
||||||
for (ZipBuildHook h : server.buildHookManager.getProguardBuildHooks())
|
|
||||||
h.build(output);
|
|
||||||
}
|
|
||||||
if (server.config.buildPostTransform.enabled)
|
|
||||||
transformedBuild();*/
|
|
||||||
}
|
|
||||||
|
|
||||||
private void transformedBuild() throws IOException {
|
|
||||||
/*List<String> cmd = new ArrayList<>(1);
|
|
||||||
for (String v : server.config.buildPostTransform.script)
|
|
||||||
cmd.add(CommonHelper.replace(v, "launcher-output", IOHelper.toAbsPathString(syncBinaryFile), "launcher-obf",
|
|
||||||
IOHelper.toAbsPathString(obfJar), "launcher-nonObf", IOHelper.toAbsPathString(binaryFile)));
|
|
||||||
ProcessBuilder builder = new ProcessBuilder();
|
|
||||||
builder.directory(IOHelper.toAbsPath(server.dir).toFile());
|
|
||||||
builder.inheritIO();
|
|
||||||
builder.command(cmd);
|
|
||||||
Process proc = builder.start();
|
|
||||||
try {
|
|
||||||
LogHelper.debug("Transformer process return code: " + proc.waitFor());
|
|
||||||
} catch (InterruptedException e) {
|
|
||||||
LogHelper.error(e);
|
|
||||||
}*/
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,43 +0,0 @@
|
||||||
package ru.gravit.launchserver.manangers;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import org.objectweb.asm.ClassReader;
|
|
||||||
import org.objectweb.asm.ClassWriter;
|
|
||||||
import org.objectweb.asm.tree.ClassNode;
|
|
||||||
|
|
||||||
import ru.gravit.launcher.LauncherConfig;
|
|
||||||
import ru.gravit.launchserver.asm.SafeClassWriter;
|
|
||||||
import ru.gravit.launchserver.binary.JARLauncherBinary;
|
|
||||||
import ru.gravit.launchserver.binary.tasks.MainBuildTask;
|
|
||||||
import ru.gravit.launchserver.manangers.hook.BuildHookManager.Transformer;
|
|
||||||
|
|
||||||
public class NodeTransformer implements Transformer {
|
|
||||||
@FunctionalInterface
|
|
||||||
public interface ClassNodeTransformer {
|
|
||||||
void transform(ClassNode node, String classname, JARLauncherBinary data);
|
|
||||||
}
|
|
||||||
|
|
||||||
private final List<ClassNodeTransformer> transLst;
|
|
||||||
|
|
||||||
public List<ClassNodeTransformer> getTransLst() {
|
|
||||||
return transLst;
|
|
||||||
}
|
|
||||||
|
|
||||||
public NodeTransformer() {
|
|
||||||
transLst = new ArrayList<>();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public byte[] transform(byte[] input, String classname, MainBuildTask data) {
|
|
||||||
//ClassReader cr = new ClassReader(input);
|
|
||||||
//ClassNode cn = new ClassNode();
|
|
||||||
//cr.accept(cn, data.server.config.env.equals(LauncherConfig.LauncherEnvironment.PROD) || data.server.config.env.equals(LauncherConfig.LauncherEnvironment.STD) ? ClassReader.SKIP_DEBUG : 0);
|
|
||||||
//for (ClassNodeTransformer tr : transLst) tr.transform(cn, classname, data);
|
|
||||||
//ClassWriter cw = new SafeClassWriter(data.reader, ClassWriter.COMPUTE_MAXS);
|
|
||||||
//cn.accept(cw);
|
|
||||||
//return cw.toByteArray();
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -10,9 +10,7 @@
|
||||||
import ru.gravit.launcher.modules.TestClientModule;
|
import ru.gravit.launcher.modules.TestClientModule;
|
||||||
import ru.gravit.launchserver.binary.BuildContext;
|
import ru.gravit.launchserver.binary.BuildContext;
|
||||||
import ru.gravit.launchserver.binary.JAConfigurator;
|
import ru.gravit.launchserver.binary.JAConfigurator;
|
||||||
import ru.gravit.launchserver.binary.JARLauncherBinary;
|
|
||||||
import ru.gravit.launchserver.binary.tasks.MainBuildTask;
|
import ru.gravit.launchserver.binary.tasks.MainBuildTask;
|
||||||
import ru.gravit.launchserver.manangers.NodeTransformer;
|
|
||||||
|
|
||||||
public class BuildHookManager {
|
public class BuildHookManager {
|
||||||
@FunctionalInterface
|
@FunctionalInterface
|
||||||
|
@ -40,8 +38,6 @@ public interface Transformer {
|
||||||
private final Set<String> CLASS_BLACKLIST;
|
private final Set<String> CLASS_BLACKLIST;
|
||||||
private final Set<String> MODULE_CLASS;
|
private final Set<String> MODULE_CLASS;
|
||||||
private final Map<String, byte[]> INCLUDE_CLASS;
|
private final Map<String, byte[]> INCLUDE_CLASS;
|
||||||
private final NodeTransformer noder;
|
|
||||||
private final NodeTransformer proguardNoder;
|
|
||||||
|
|
||||||
public BuildHookManager() {
|
public BuildHookManager() {
|
||||||
POST_HOOKS = new HashSet<>(4);
|
POST_HOOKS = new HashSet<>(4);
|
||||||
|
@ -59,18 +55,6 @@ public BuildHookManager() {
|
||||||
registerIgnoredClass("META-INF/LICENSE");
|
registerIgnoredClass("META-INF/LICENSE");
|
||||||
registerIgnoredClass("META-INF/NOTICE");
|
registerIgnoredClass("META-INF/NOTICE");
|
||||||
registerClientModuleClass(TestClientModule.class.getName());
|
registerClientModuleClass(TestClientModule.class.getName());
|
||||||
noder = new NodeTransformer();
|
|
||||||
registerClassTransformer(noder);
|
|
||||||
proguardNoder = new NodeTransformer();
|
|
||||||
registerProGuardHook(proguardNoder);
|
|
||||||
}
|
|
||||||
|
|
||||||
public NodeTransformer getProguardNoder() {
|
|
||||||
return proguardNoder;
|
|
||||||
}
|
|
||||||
|
|
||||||
public NodeTransformer getNoder() {
|
|
||||||
return noder;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public Set<ZipBuildHook> getProguardBuildHooks() {
|
public Set<ZipBuildHook> getProguardBuildHooks() {
|
||||||
|
@ -157,7 +141,7 @@ public void registerProGuardHook(Transformer hook) {
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isNeedPostProguardHook() {
|
public boolean isNeedPostProguardHook() {
|
||||||
return POST_PROGUARD_HOOKS.size() > 1 || !POST_PROGUARDRUN_HOOKS.isEmpty() || !POST_PROGUARD_BUILDHOOKS.isEmpty() || !proguardNoder.getTransLst().isEmpty();
|
return POST_PROGUARD_HOOKS.size() > 1 || !POST_PROGUARDRUN_HOOKS.isEmpty() || !POST_PROGUARD_BUILDHOOKS.isEmpty();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void registerPreHook(BuildHook hook) {
|
public void registerPreHook(BuildHook hook) {
|
||||||
|
|
Loading…
Reference in a new issue