From 257e8c3f33755a12209b203545f314286ce05382 Mon Sep 17 00:00:00 2001 From: gegy1000 Date: Tue, 18 Jun 2019 21:46:11 +0200 Subject: Parse profile json from cli args --- src/main/java/cuchaz/enigma/Enigma.java | 5 +++++ src/main/java/cuchaz/enigma/Main.java | 11 ++++++++++- .../enigma/api/service/ObfuscationTestService.java | 18 ------------------ src/main/java/cuchaz/enigma/gui/Gui.java | 5 +++-- src/main/java/cuchaz/enigma/gui/GuiController.java | 12 +++++------- 5 files changed, 23 insertions(+), 28 deletions(-) (limited to 'src/main/java/cuchaz/enigma') diff --git a/src/main/java/cuchaz/enigma/Enigma.java b/src/main/java/cuchaz/enigma/Enigma.java index 9f88f77..fd23b47 100644 --- a/src/main/java/cuchaz/enigma/Enigma.java +++ b/src/main/java/cuchaz/enigma/Enigma.java @@ -20,6 +20,7 @@ import cuchaz.enigma.api.EnigmaPluginContext; import cuchaz.enigma.api.service.EnigmaService; import cuchaz.enigma.api.service.EnigmaServiceFactory; import cuchaz.enigma.api.service.EnigmaServiceType; +import cuchaz.enigma.api.service.JarIndexerService; import java.io.IOException; import java.nio.file.Path; @@ -46,6 +47,10 @@ public class Enigma { ClassCache classCache = ClassCache.of(path); JarIndex jarIndex = classCache.index(progress); + services.get(JarIndexerService.TYPE).ifPresent(indexer -> { + indexer.acceptJar(classCache, jarIndex); + }); + return new EnigmaProject(this, classCache, jarIndex); } diff --git a/src/main/java/cuchaz/enigma/Main.java b/src/main/java/cuchaz/enigma/Main.java index a642840..1f2cb84 100644 --- a/src/main/java/cuchaz/enigma/Main.java +++ b/src/main/java/cuchaz/enigma/Main.java @@ -16,6 +16,7 @@ import cuchaz.enigma.gui.GuiController; import cuchaz.enigma.translation.mapping.serde.MappingFormat; import joptsimple.*; +import java.io.BufferedReader; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; @@ -48,7 +49,15 @@ public class Main { return; } - Gui gui = new Gui(); + EnigmaProfile parsedProfile = EnigmaProfile.EMPTY; + if (options.has(profile)) { + Path profilePath = options.valueOf(profile); + try (BufferedReader reader = Files.newBufferedReader(profilePath)) { + parsedProfile = EnigmaProfile.parse(reader); + } + } + + Gui gui = new Gui(parsedProfile); GuiController controller = gui.getController(); if (options.has(jar)) { diff --git a/src/main/java/cuchaz/enigma/api/service/ObfuscationTestService.java b/src/main/java/cuchaz/enigma/api/service/ObfuscationTestService.java index c580f09..af0cf30 100644 --- a/src/main/java/cuchaz/enigma/api/service/ObfuscationTestService.java +++ b/src/main/java/cuchaz/enigma/api/service/ObfuscationTestService.java @@ -1,27 +1,9 @@ package cuchaz.enigma.api.service; -import com.google.common.base.Strings; -import cuchaz.enigma.translation.representation.entry.ClassEntry; import cuchaz.enigma.translation.representation.entry.Entry; public interface ObfuscationTestService extends EnigmaService { EnigmaServiceType TYPE = EnigmaServiceType.create("obfuscation_test"); boolean testDeobfuscated(Entry entry); - - final class Default implements ObfuscationTestService { - Default INSTANCE = new Default(); - - Default() { - } - - @Override - public boolean testDeobfuscated(Entry entry) { - if (entry instanceof ClassEntry) { - String packageName = ((ClassEntry) entry).getPackageName(); - return Strings.isNullOrEmpty(packageName); - } - return false; - } - } } diff --git a/src/main/java/cuchaz/enigma/gui/Gui.java b/src/main/java/cuchaz/enigma/gui/Gui.java index 6fc9fcf..5b9a331 100644 --- a/src/main/java/cuchaz/enigma/gui/Gui.java +++ b/src/main/java/cuchaz/enigma/gui/Gui.java @@ -13,6 +13,7 @@ package cuchaz.enigma.gui; import com.google.common.collect.Lists; import cuchaz.enigma.Constants; +import cuchaz.enigma.EnigmaProfile; import cuchaz.enigma.ExceptionIgnorer; import cuchaz.enigma.analysis.*; import cuchaz.enigma.config.Config; @@ -93,7 +94,7 @@ public class Gui { } } - public Gui() { + public Gui(EnigmaProfile profile) { Config.getInstance().lookAndFeel.setGlobalLAF(); // init frame @@ -112,7 +113,7 @@ public class Gui { }); } - this.controller = new GuiController(this); + this.controller = new GuiController(this, profile); // init file choosers this.jarFileChooser = new FileDialog(getFrame(), "Open Jar", FileDialog.LOAD); diff --git a/src/main/java/cuchaz/enigma/gui/GuiController.java b/src/main/java/cuchaz/enigma/gui/GuiController.java index 4410bf3..209b5d1 100644 --- a/src/main/java/cuchaz/enigma/gui/GuiController.java +++ b/src/main/java/cuchaz/enigma/gui/GuiController.java @@ -14,10 +14,7 @@ package cuchaz.enigma.gui; import com.google.common.collect.Lists; import com.google.common.util.concurrent.ThreadFactoryBuilder; import com.strobel.decompiler.languages.java.ast.CompilationUnit; -import cuchaz.enigma.CompiledSourceTypeLoader; -import cuchaz.enigma.Enigma; -import cuchaz.enigma.EnigmaProject; -import cuchaz.enigma.SourceProvider; +import cuchaz.enigma.*; import cuchaz.enigma.analysis.*; import cuchaz.enigma.api.service.ObfuscationTestService; import cuchaz.enigma.bytecode.translators.SourceFixVisitor; @@ -70,10 +67,11 @@ public class GuiController { private DecompiledClassSource currentSource; - public GuiController(Gui gui) { + public GuiController(Gui gui, EnigmaProfile profile) { this.gui = gui; - // TODO: load and set profile - this.enigma = Enigma.create(); + this.enigma = Enigma.builder() + .setProfile(profile) + .build(); } public boolean isDirty() { -- cgit v1.2.3