added --quiet option.

This commit is contained in:
Ryszard Wiśniewski 2011-11-05 21:07:34 +01:00
parent fafc3f447c
commit 31e6dc51f1

View File

@ -32,7 +32,7 @@ public class Main {
public static void main(String[] args) public static void main(String[] args)
throws IOException, AndrolibException, InterruptedException { throws IOException, AndrolibException, InterruptedException {
try { try {
boolean verbose = false; Verbosity verbosity = Verbosity.NORMAL;
int i; int i;
for (i = 0; i < args.length; i++) { for (i = 0; i < args.length; i++) {
String opt = args[i]; String opt = args[i];
@ -40,12 +40,20 @@ public class Main {
break; break;
} }
if ("-v".equals(opt) || "--verbose".equals(opt)) { if ("-v".equals(opt) || "--verbose".equals(opt)) {
verbose = true; if (verbosity != Verbosity.NORMAL) {
throw new InvalidArgsError();
}
verbosity = Verbosity.VERBOSE;
} else if ("-q".equals(opt) || "--quiet".equals(opt)) {
if (verbosity != Verbosity.NORMAL) {
throw new InvalidArgsError();
}
verbosity = Verbosity.QUIET;
} else { } else {
throw new InvalidArgsError(); throw new InvalidArgsError();
} }
} }
setupLogging(verbose); setupLogging(verbosity);
if (args.length <= i) { if (args.length <= i) {
throw new InvalidArgsError(); throw new InvalidArgsError();
@ -204,7 +212,7 @@ public class Main {
"Copyright 2010 Ryszard Wiśniewski <brut.alll@gmail.com>\n" + "Copyright 2010 Ryszard Wiśniewski <brut.alll@gmail.com>\n" +
"Apache License 2.0 (http://www.apache.org/licenses/LICENSE-2.0)\n" + "Apache License 2.0 (http://www.apache.org/licenses/LICENSE-2.0)\n" +
"\n" + "\n" +
"Usage: apktool [-v|--verbose] COMMAND [...]\n" + "Usage: apktool [-q|--quiet OR -v|--verbose] COMMAND [...]\n" +
"\n" + "\n" +
"COMMANDs are:\n" + "COMMANDs are:\n" +
"\n" + "\n" +
@ -253,15 +261,19 @@ public class Main {
); );
} }
private static void setupLogging(boolean verbose) { private static void setupLogging(Verbosity verbosity) {
Logger logger = Logger.getLogger(""); Logger logger = Logger.getLogger("");
for (Handler handler : logger.getHandlers()) { for (Handler handler : logger.getHandlers()) {
logger.removeHandler(handler); logger.removeHandler(handler);
} }
if (verbosity == Verbosity.QUIET) {
return;
}
Handler handler = new ConsoleHandler(); Handler handler = new ConsoleHandler();
logger.addHandler(handler); logger.addHandler(handler);
if (verbose) { if (verbosity == Verbosity.VERBOSE) {
handler.setLevel(Level.ALL); handler.setLevel(Level.ALL);
logger.setLevel(Level.ALL); logger.setLevel(Level.ALL);
} else { } else {
@ -276,6 +288,10 @@ public class Main {
} }
} }
private static enum Verbosity {
NORMAL, VERBOSE, QUIET;
}
static class InvalidArgsError extends AndrolibException { static class InvalidArgsError extends AndrolibException {
} }