More Command Line Options

This commit is contained in:
Konloch 2021-07-08 02:24:12 -07:00
parent c4f77bd47b
commit 9ab8ec7f8c
3 changed files with 24 additions and 12 deletions

View File

@ -10,7 +10,6 @@ import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import me.konloch.kontainer.io.DiskReader;
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.FilenameUtils;
import org.objectweb.asm.tree.ClassNode;
import the.bytecode.club.bootloader.Boot;
import the.bytecode.club.bytecodeviewer.api.ExceptionUI;
@ -20,7 +19,6 @@ import the.bytecode.club.bytecodeviewer.gui.resourceviewer.viewer.ClassViewer;
import the.bytecode.club.bytecodeviewer.gui.MainViewerGUI;
import the.bytecode.club.bytecodeviewer.gui.resourceviewer.viewer.ResourceViewer;
import the.bytecode.club.bytecodeviewer.obfuscators.mapping.Refactorer;
import the.bytecode.club.bytecodeviewer.plugin.PluginManager;
import the.bytecode.club.bytecodeviewer.plugin.PluginWriter;
import the.bytecode.club.bytecodeviewer.util.*;
import the.bytecode.club.bytecodeviewer.resources.importing.ImportResource;
@ -199,12 +197,12 @@ public class BytecodeViewer
{
bootCheck.start();
Boot.boot(args, CLI != CommandLineInput.OPEN_FILE);
Boot.boot(args, CLI != CommandLineInput.GUI);
}
else
installFatJar.start();
if (CLI == CommandLineInput.OPEN_FILE)
if (CLI == CommandLineInput.GUI)
BytecodeViewer.boot(false);
else
{

View File

@ -9,6 +9,7 @@ import org.apache.commons.cli.Options;
import org.objectweb.asm.ClassWriter;
import org.objectweb.asm.tree.ClassNode;
import the.bytecode.club.bytecodeviewer.decompilers.Decompiler;
import the.bytecode.club.bytecodeviewer.translation.Language;
import the.bytecode.club.bytecodeviewer.util.JarUtils;
import the.bytecode.club.bytecodeviewer.util.MiscUtils;
@ -45,7 +46,7 @@ public class CommandLineInput {
/*BECAUSE WHO DOESN'T LOVE MAGIC NUMBERS*/
public static int STOP = -1;
public static int OPEN_FILE = 0;
public static int GUI = 0;
public static int CLI = 1;
static {
@ -66,6 +67,8 @@ public class CommandLineInput {
CommandLine cmd = parser.parse(options, args);
if (
cmd.hasOption("help") ||
cmd.hasOption("clean") ||
cmd.hasOption("english") ||
cmd.hasOption("list") ||
cmd.hasOption("decompiler") ||
cmd.hasOption("i") ||
@ -84,7 +87,7 @@ public class CommandLineInput {
public static int parseCommandLine(String[] args) {
if (!containsCommand(args))
return OPEN_FILE;
return GUI;
try {
CommandLine cmd = parser.parse(options, args);
if (cmd.hasOption("list")) {
@ -96,15 +99,24 @@ public class CommandLineInput {
System.out.println("JD-GUI");
System.out.println("Smali");
return STOP;
} else if (cmd.hasOption("clean")) {
new File(Constants.getBCVDirectory()).delete();
if(cmd.getOptionValue("i") == null && cmd.getOptionValue("o") == null
&& cmd.getOptionValue("t") == null)
return GUI;
} else if (cmd.hasOption("english")) {
Configuration.language = Language.ENGLISH;
return GUI;
} else if (cmd.hasOption("help")) {
for (String s : new String[]{
"-help Displays the help menu",
"-clean Deletes BCV directory",
"-english Forces English language translations",
"-list Displays the available decompilers",
"-decompiler <decompiler> Selects the decompiler, procyon by default",
"-i <input file> Selects the input file",
"-o <output file> Selects the output file",
"-t <target classname> Must either be the fully qualified classname or \"all\" to "
+ "decompile all as zip",
"-t <target classname> Must either be the fully qualified classname or \"all\" to decompile all as zip",
"-nowait Doesn't wait for the user to read the CLI messages"
})
System.out.println(s);
@ -165,7 +177,7 @@ public class CommandLineInput {
BytecodeViewer.handleException(e);
}
return OPEN_FILE;
return GUI;
}
public static void executeCommandLine(String[] args) {
@ -344,8 +356,7 @@ public class CommandLineInput {
}
System.out.println("Finished.");
System.out.println("Bytecode Viewer CLI v" + VERSION + " by @Konloch - "
+ "https://bytecodeviewer.com");
System.out.println("Bytecode Viewer " + VERSION + " [CLI] - Created by @Konloch - https://bytecodeviewer.com");
Configuration.canExit = true;
System.exit(0);
} catch (Exception e) {

View File

@ -122,7 +122,10 @@ public class BootCheck implements Runnable
Boot.globalstop = false;
Boot.hide();
if (CommandLineInput.parseCommandLine(BytecodeViewer.launchArgs) == CommandLineInput.OPEN_FILE)
int CLI = CommandLineInput.parseCommandLine(BytecodeViewer.launchArgs);
if (CLI == CommandLineInput.GUI)
BytecodeViewer.boot(false);
else {
BytecodeViewer.boot(true);