Clean up android desugar tool's flags a bit

--
PiperOrigin-RevId: 150019741
MOS_MIGRATED_REVID=150019741
diff --git a/src/tools/android/java/com/google/devtools/build/android/desugar/Desugar.java b/src/tools/android/java/com/google/devtools/build/android/desugar/Desugar.java
index 21fd984..877d230 100644
--- a/src/tools/android/java/com/google/devtools/build/android/desugar/Desugar.java
+++ b/src/tools/android/java/com/google/devtools/build/android/desugar/Desugar.java
@@ -58,7 +58,7 @@
       category = "input",
       converter = ExistingPathConverter.class,
       abbrev = 'i',
-      help = "Input Jar with classes to desugar."
+      help = "Input Jar with classes to desugar (required)."
     )
     public Path inputJar;
 
@@ -78,18 +78,15 @@
       defaultValue = "",
       category = "input",
       converter = ExistingPathConverter.class,
-      help =
-          "Bootclasspath that was used to compile the --input Jar with, like javac's "
-              + "-bootclasspath flag. If no bootclasspath is explicitly given then the tool's own "
-              + "bootclasspath is used."
+      help = "Bootclasspath that was used to compile the --input Jar with, like javac's "
+          + "-bootclasspath flag (required)."
     )
     public List<Path> bootclasspath;
 
     @Option(
       name = "allow_empty_bootclasspath",
       defaultValue = "false",
-      category = "misc",
-      help = "Don't use the tool's bootclasspath if no bootclasspath is given."
+      category = "undocumented"
     )
     public boolean allowEmptyBootclasspath;
 
@@ -99,7 +96,7 @@
       category = "output",
       converter = PathConverter.class,
       abbrev = 'o',
-      help = "Output Jar to write desugared classes into."
+      help = "Output Jar to write desugared classes into (required)."
     )
     public Path outputJar;
 
@@ -132,6 +129,7 @@
       name = "core_library",
       defaultValue = "false",
       category = "undocumented",
+      implicitRequirements = "--allow_empty_bootclasspath",
       help = "Enables rewriting to desugar java.* classes."
     )
     public boolean coreLibrary;
@@ -155,16 +153,19 @@
     }
 
     OptionsParser optionsParser = OptionsParser.newOptionsParser(Options.class);
+    optionsParser.setAllowResidue(false);
     optionsParser.parseAndExitUponError(args);
     Options options = optionsParser.getOptions(Options.class);
 
+    checkState(options.inputJar != null, "--input is required");
+    checkState(options.outputJar != null, "--output is required");
+    checkState(!options.bootclasspath.isEmpty() || options.allowEmptyBootclasspath,
+        "Bootclasspath required to desugar %s", options.inputJar);
+
     if (options.verbose) {
       System.out.printf("Lambda classes will be written under %s%n", dumpDirectory);
     }
 
-    checkState(!options.bootclasspath.isEmpty() || options.allowEmptyBootclasspath,
-        "Bootclasspath required to desugar %s", options.inputJar);
-
     CoreLibraryRewriter rewriter =
         new CoreLibraryRewriter(options.coreLibrary ? "__desugar__/" : "");