diff --git a/lib/jansi-2.4.0.jar b/lib/jansi-2.4.0.jar new file mode 100644 index 000000000..d6bb12fc3 Binary files /dev/null and b/lib/jansi-2.4.0.jar differ diff --git a/nbproject/project.xml b/nbproject/project.xml index 9b5203989..e08e22046 100644 --- a/nbproject/project.xml +++ b/nbproject/project.xml @@ -323,7 +323,7 @@ src - 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/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 build javadoc reports diff --git a/src/com/jpexs/decompiler/flash/console/NewCommandLine.java b/src/com/jpexs/decompiler/flash/console/NewCommandLine.java index 37a68603a..a37a9f777 100644 --- a/src/com/jpexs/decompiler/flash/console/NewCommandLine.java +++ b/src/com/jpexs/decompiler/flash/console/NewCommandLine.java @@ -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); } } diff --git a/src/com/jpexs/decompiler/flash/console/commands/Export.java b/src/com/jpexs/decompiler/flash/console/commands/Export.java index 4140b1c95..e454269eb 100644 --- a/src/com/jpexs/decompiler/flash/console/commands/Export.java +++ b/src/com/jpexs/decompiler/flash/console/commands/Export.java @@ -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 = "", 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 = "", - description = {"What objects to export. Available formats:", + description = {"What objects to export. @|bold Available formats|@:", "script:as (default)", "script:pcode", "script:pcodehex", diff --git a/src/com/jpexs/decompiler/flash/console/commands/Main.java b/src/com/jpexs/decompiler/flash/console/commands/Main.java index 56d71b684..189041b78 100644 --- a/src/com/jpexs/decompiler/flash/console/commands/Main.java +++ b/src/com/jpexs/decompiler/flash/console/commands/Main.java @@ -32,15 +32,27 @@ import picocli.CommandLine.ScopeType; * * @author JPEXS */ -@Command(name=" --cli", +@Command(name="", 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 = {" [@|fg(yellow) FILE|@...]", + " or [@|fg(yellow) -hV|@]", + " or @|fg(yellow) --cli|@ [COMMAND]"}, + description = {"JPEXS Free Flash Decompiler commandline interface", + "", + "@|bold,underline Executable|@:", + " ffdec.sh on Linux/MacOs, ffdec.bat on Windows", + " or 'java -jar ffdec.jar' on all java" }, - descriptionHeading = "%n ffdec.sh on Linux/MacOs, ffdec.bat on Windows%n", - customSynopsis = " [FILE...]%n or [-hV]%n or --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 diff --git a/src/com/jpexs/decompiler/flash/gui/Main.java b/src/com/jpexs/decompiler/flash/gui/Main.java index 9f3c19953..4d60f06f5 100644 --- a/src/com/jpexs/decompiler/flash/gui/Main.java +++ b/src/com/jpexs/decompiler/flash/gui/Main.java @@ -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); - } + } } }); }