diff options
Diffstat (limited to 'jill/src/com/android/jill/Main.java')
-rw-r--r-- | jill/src/com/android/jill/Main.java | 23 |
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 |