summaryrefslogtreecommitdiffstats
path: root/jill/src/com/android/jill/Main.java
diff options
context:
space:
mode:
Diffstat (limited to 'jill/src/com/android/jill/Main.java')
-rw-r--r--jill/src/com/android/jill/Main.java23
1 files changed, 15 insertions, 8 deletions
diff --git a/jill/src/com/android/jill/Main.java b/jill/src/com/android/jill/Main.java
index e35ba93..172c355 100644
--- a/jill/src/com/android/jill/Main.java
+++ b/jill/src/com/android/jill/Main.java
@@ -52,9 +52,8 @@ public class Main {
System.exit(ExitStatus.SUCCESS);
}
- Jill.process(options);
+ System.exit(runJill(System.err, options));
- System.exit(ExitStatus.SUCCESS);
} catch (CmdLineException e) {
if (e.getMessage() != null) {
System.err.println(e.getMessage());
@@ -70,21 +69,29 @@ public class Main {
System.err.println(e.getMessage());
System.exit(ExitStatus.FAILURE_USAGE);
+ }
+
+ System.exit(ExitStatus.FAILURE_UNKNOWN);
+ }
+
+ protected static int runJill(@Nonnull PrintStream err, @Nonnull Options options) {
+ try {
+ Jill.process(options);
+
} catch (JillException e) {
if (options != null) {
- System.err.println("Binary transformation of " + options.getBinaryFile().getName()
+ err.println("Binary transformation of " + options.getBinaryFile().getName()
+ " failed.");
if (options.isVerbose()) {
- e.printStackTrace();
+ e.printStackTrace(err);
}
} else {
- System.err.println("Binary transformation failed.");
+ err.println("Binary transformation failed.");
}
- System.exit(ExitStatus.FAILURE_INTERNAL);
+ return ExitStatus.FAILURE_INTERNAL;
}
-
- System.exit(ExitStatus.FAILURE_UNKNOWN);
+ return ExitStatus.SUCCESS;
}
@Nonnull