Export command WIP

This commit is contained in:
Jindra Petřík
2024-01-08 20:00:23 +01:00
parent 54bfd1f6fb
commit 06ea0c2dff
6 changed files with 36 additions and 21 deletions

BIN
lib/jansi-2.4.0.jar Normal file

Binary file not shown.

View File

@@ -323,7 +323,7 @@
<java-data xmlns="http://www.netbeans.org/ns/freeform-project-java/4">
<compilation-unit>
<package-root>src</package-root>
<classpath mode="compile">lib/jpproxy.jar;lib/trident-6.2.jar;lib/substance-flamingo-6.2.jar;lib/flamingo-6.2.jar;lib/substance-6.2.jar;libsrc/ffdec_lib/src;lib/tablelayout.jar;lib/jsyntaxpane-0.9.5.jar;lib/JavactiveX.jar;lib/flashdebugger.jar;lib/treetable.jar;lib/minimal-json-0.9.5.jar;libsrc/ffdec_lib/lib/gnujpdf.jar;libsrc/ffdec_lib/lib/jna-3.5.1.jar;libsrc/ffdec_lib/lib/jna-platform-3.5.1.jar;libsrc/ffdec_lib/lib/flashdebugger.jar;lib/gifreader.jar</classpath>
<classpath mode="compile">lib/jpproxy.jar;lib/trident-6.2.jar;lib/substance-flamingo-6.2.jar;lib/flamingo-6.2.jar;lib/substance-6.2.jar;libsrc/ffdec_lib/src;lib/tablelayout.jar;lib/jsyntaxpane-0.9.5.jar;lib/JavactiveX.jar;lib/flashdebugger.jar;lib/treetable.jar;lib/minimal-json-0.9.5.jar;libsrc/ffdec_lib/lib/gnujpdf.jar;libsrc/ffdec_lib/lib/jna-3.5.1.jar;libsrc/ffdec_lib/lib/jna-platform-3.5.1.jar;libsrc/ffdec_lib/lib/flashdebugger.jar;lib/gifreader.jar;lib/jansi-2.4.0.jar</classpath>
<built-to>build</built-to>
<built-to>javadoc</built-to>
<built-to>reports</built-to>

View File

@@ -17,6 +17,7 @@
package com.jpexs.decompiler.flash.console;
import com.jpexs.decompiler.flash.console.commands.Main;
import org.fusesource.jansi.AnsiConsole;
import picocli.CommandLine;
/**
@@ -25,16 +26,10 @@ import picocli.CommandLine;
*/
public class NewCommandLine {
public static void main(String[] args) {
//args = new String[] {"--cli", "sample", "jedna", "dva", "tri"};
//args = new String[] {"--cli", "help", "sample"};
args = new String[] {"--cli", "help", "export"};
//args = new String[] {"--help"};
//args = new String[] {"--cli", "export", "script:as,image:png", "C:/out/", "C:/in/myfile.swf"};
public static void main(String[] args) {
AnsiConsole.systemInstall();
int exitCode = new CommandLine(new Main()).execute(args);
AnsiConsole.systemUninstall();
System.exit(exitCode);
}
}

View File

@@ -36,19 +36,23 @@ import picocli.CommandLine.ParentCommand;
* @author JPEXS
*/
@Command(name = "export",
header = "Export sources to directory"
header = "Export sources to a directory",
//descriptionHeading = "%n@|bold,underline Description|@:%n",
optionListHeading = "%n@|bold,underline Options|@:%n",
parameterListHeading = "%n@|bold,underline Parameters|@:%n",
synopsisHeading = "@|bold,underline Usage|@:"
)
public class Export implements Runnable {
@ParentCommand
private Main parent;
@Option(names = "--frame",
paramLabel = "<frameRanges>",
converter = SelectionConverter.class,
description = {
"Selected frame(s) to export.",
"Sample values: 1-5 or 2,4 or 2-5,7,9-"
"@|bold Sample values|@: 1-5 or 2,4 or 2-5,7,9-"
}
)
private Selection frames = new Selection();
@@ -58,7 +62,7 @@ public class Export implements Runnable {
converter = SelectionConverter.class,
description = {
"Selected character id(s) to export.",
"Sample values: 27 or 2-5 or 12,24 or 2-5,10,9-"
"@|bold Sample values|@: 27 or 2-5 or 12,24 or 2-5,10,9-"
}
)
private Selection characterIds = new Selection();
@@ -68,7 +72,7 @@ public class Export implements Runnable {
split = ",",
description = {
"Selected scripts to export by classname (ActionScript 3 ONLY).",
"Sample values:",
"@|bold Sample values|@:",
"com.example.MyClass",
"com.example.+ (all classes in package \"com.example\")",
"com.++,net.company.MyClass (all classes in package \"com\" and all subpackages, class net.company.MyClass)",
@@ -89,7 +93,7 @@ public class Export implements Runnable {
split = ",",
converter = ExportObjectFormatConverter.class,
paramLabel = "<type[:format]>",
description = {"What objects to export. Available formats:",
description = {"What objects to export. @|bold Available formats|@:",
"script:as (default)",
"script:pcode",
"script:pcodehex",

View File

@@ -32,15 +32,27 @@ import picocli.CommandLine.ScopeType;
*
* @author JPEXS
*/
@Command(name="<ffdec> --cli",
@Command(name="<ffdec>",
mixinStandardHelpOptions = true,
versionProvider = VersionProvider.class,
subcommands = {
HelpCommand.class,
Export.class
},
descriptionHeading = "%n@|bold,underline Description|@:%n",
optionListHeading = "%n@|bold,underline Options|@:%n",
parameterListHeading = "%n@|bold,underline Parameters|@:%n",
synopsisHeading = "@|bold,underline Usage|@:",
customSynopsis = {"<ffdec> [@|fg(yellow) FILE|@...]",
" or <ffdec> [@|fg(yellow) -hV|@]",
" or <ffdec> @|fg(yellow) --cli|@ [COMMAND]"},
description = {"JPEXS Free Flash Decompiler commandline interface",
"",
"@|bold,underline Executable|@:",
" <ffdec> ffdec.sh on Linux/MacOs, ffdec.bat on Windows",
" or 'java -jar ffdec.jar' on all java"
},
descriptionHeading = "%n <ffdec> ffdec.sh on Linux/MacOs, ffdec.bat on Windows%n",
customSynopsis = "<ffdec> [FILE...]%n or <ffdec> [-hV]%n or <ffdec> --cli [COMMAND]"
commandListHeading = "%n@|bold,underline Commands|@:%n"
)
public class Main implements Runnable {
@@ -58,7 +70,10 @@ public class Main implements Runnable {
@Parameters(paramLabel = "FILE", description = "one or more files to open in GUI")
private File[] files;
@Option(names = "--cli", required = true, description = "Use new commandline mode")
@Option(names = "--cli",
required = true,
description = "Use new commandline mode",
scope = ScopeType.INHERIT)
private boolean cli = false;
@Override

View File

@@ -44,6 +44,7 @@ import com.jpexs.decompiler.flash.configuration.SwfSpecificConfiguration;
import com.jpexs.decompiler.flash.configuration.SwfSpecificCustomConfiguration;
import com.jpexs.decompiler.flash.console.CommandLineArgumentParser;
import com.jpexs.decompiler.flash.console.ContextMenuTools;
import com.jpexs.decompiler.flash.console.NewCommandLine;
import com.jpexs.decompiler.flash.exporters.modes.ExeExportMode;
import com.jpexs.decompiler.flash.gfx.GfxConvertor;
import com.jpexs.decompiler.flash.gui.debugger.DebugAdapter;
@@ -2850,7 +2851,7 @@ public class Main {
} else {
for (String fileToOpen : filesToOpen) {
openFile(fileToOpen, null);
}
}
}
});
}