Commit 0e4c8df4 authored by Skylot's avatar Skylot

cli: print default value for number options

parent 3b2d595a
...@@ -63,10 +63,10 @@ public class JadxCLIArgs { ...@@ -63,10 +63,10 @@ public class JadxCLIArgs {
@Parameter(names = {"--deobf"}, description = "activate deobfuscation") @Parameter(names = {"--deobf"}, description = "activate deobfuscation")
protected boolean deobfuscationOn = false; protected boolean deobfuscationOn = false;
@Parameter(names = {"--deobf-min"}, description = "min length of name") @Parameter(names = {"--deobf-min"}, description = "min length of name, renamed if shorter")
protected int deobfuscationMinLength = 2; protected int deobfuscationMinLength = 2;
@Parameter(names = {"--deobf-max"}, description = "max length of name") @Parameter(names = {"--deobf-max"}, description = "max length of name, renamed if longer")
protected int deobfuscationMaxLength = 64; protected int deobfuscationMaxLength = 64;
@Parameter(names = {"--deobf-rewrite-cfg"}, description = "force to save deobfuscation map") @Parameter(names = {"--deobf-rewrite-cfg"}, description = "force to save deobfuscation map")
...@@ -162,7 +162,8 @@ public class JadxCLIArgs { ...@@ -162,7 +162,8 @@ public class JadxCLIArgs {
maxNamesLen = len; maxNamesLen = len;
} }
} }
Field[] fields = JadxCLIArgs.class.getDeclaredFields(); JadxCLIArgs args = new JadxCLIArgs();
Field[] fields = args.getClass().getDeclaredFields();
for (Field f : fields) { for (Field f : fields) {
String name = f.getName(); String name = f.getName();
ParameterDescription p = paramsMap.get(name); ParameterDescription p = paramsMap.get(name);
...@@ -173,12 +174,25 @@ public class JadxCLIArgs { ...@@ -173,12 +174,25 @@ public class JadxCLIArgs {
opt.append(" ").append(p.getNames()); opt.append(" ").append(p.getNames());
addSpaces(opt, maxNamesLen - opt.length() + 3); addSpaces(opt, maxNamesLen - opt.length() + 3);
opt.append("- ").append(p.getDescription()); opt.append("- ").append(p.getDescription());
addDefaultValue(args, f, opt);
out.println(opt); out.println(opt);
} }
out.println("Example:"); out.println("Example:");
out.println(" jadx -d out classes.dex"); out.println(" jadx -d out classes.dex");
} }
private void addDefaultValue(JadxCLIArgs args, Field f, StringBuilder opt) {
Class<?> fieldType = f.getType();
if (fieldType == int.class) {
try {
int val = f.getInt(args);
opt.append(" (default: ").append(val).append(")");
} catch (Exception e) {
// ignore
}
}
}
private static void addSpaces(StringBuilder str, int count) { private static void addSpaces(StringBuilder str, int count) {
for (int i = 0; i < count; i++) { for (int i = 0; i < count; i++) {
str.append(' '); str.append(' ');
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment