Polish add-android-sdk.py

Change-Id: I73cd97b823069cdaa6e009db946cb561ea252e3f
diff --git a/tools/add-android-sdk.py b/tools/add-android-sdk.py
index 063a99c..1cffe9c 100755
--- a/tools/add-android-sdk.py
+++ b/tools/add-android-sdk.py
@@ -14,17 +14,17 @@
     parser = argparse.ArgumentParser(description='Release r8')
     parser.add_argument('--sdk-home',
                         '--sdk_home',
-                        metavar=('<SDK_HOME>'),
+                        metavar='<SDK_HOME>',
                         help='SDK_HOME to use for finding SDK'
-                             ' (default $SDK_HOME or $HOME/Android/Sdk)')
+                        ' (default $SDK_HOME or $HOME/Android/Sdk)')
     parser.add_argument('--sdk-name',
                         '--sdk_name',
                         required=True,
-                        metavar=('<name>'),
+                        metavar='<name>',
                         help='Name of the SDK, either API level or code name')
     parser.add_argument('--api-level',
                         '--api_level',
-                        metavar=('<level>'),
+                        metavar='<level>',
                         help='API level to add this as in third_party')
     return parser.parse_args()
 
@@ -48,42 +48,49 @@
         f.write('This is excerpts from an Android SDK including android.jar.\n')
 
 
+def str_to_int(s):
+    try:
+        return int(s)
+    except ValueError:
+        return None
+
+
 def main():
     args = parse_options()
 
     if not args.sdk_home:
         args.sdk_home = os.environ.get('SDK_HOME')
         if not args.sdk_home:
-            if not os.environ.get('HOME'):
+            home_path = os.environ.get('HOME')
+            if not home_path:
                 print('No SDK_HOME specified')
-                sys.exit(1)
-            args.sdk_home = os.path.join(os.environ.get('HOME'), 'Android', 'Sdk')
+                return 1
+            args.sdk_home = os.path.join(home_path, 'Android', 'Sdk')
         if not os.path.exists(args.sdk_home):
             print('SDK_HOME does not exist')
-            sys.exit(1)
+            return 1
         print('Using SDK_HOME: %s' % args.sdk_home)
 
     source = os.path.join(args.sdk_home, 'platforms',
                           'android-%s' % args.sdk_name)
     if not os.path.exists(source):
         print('Path %s does not exist' % source)
-        sys.exit(1)
+        return 1
 
     api_level = args.api_level if args.api_level else args.sdk_name
-    api_level_major = -1
-    api_level_minor = 0
-    try:
-        api_level_parts = api_level.split('.')
-        if len(api_level_parts) > 2:
-            print('API level "%s" must be minor[.major]' % api_level)
-            return -1
+    api_level_parts = api_level.split('.')
+    if not (1 <= len(api_level_parts) <= 2):
+        print(f'API level "{api_level}" must be minor[.major]')
+        return 1
 
-        api_level_major = int(api_level_parts[0])
-        if len(api_level_parts) == 2:
-            api_level_minor = int(api_level_parts[1])
-    except:
-        print('API level "%s" must be minor[.major]' % api_level)
-        return -1
+    api_level_major = str_to_int(api_level_parts[0])
+    api_level_minor = 0
+    if len(api_level_parts) == 2:
+        api_level_minor = str_to_int(api_level_parts[1])
+
+    if api_level_major is None or api_level_minor is None:
+        print(f'API level "{api_level}" must be minor[.major] of integers')
+        return 1
 
     destination = utils.get_android_jar_dir(api_level_major, api_level_minor)
 
@@ -100,8 +107,8 @@
     shutil.copyfile(os.path.join(source, 'data', 'api-versions.xml'),
                     os.path.join(destination, 'api-versions.xml'))
     source_optional_path = os.path.join(source, 'optional')
-    for root, dirnames, filenames in os.walk(source_optional_path):
-        for filename in filenames:
+    for root, _, file_names in os.walk(source_optional_path):
+        for filename in file_names:
             if filename.endswith('.jar') or filename == 'optional.json':
                 shutil.copyfile(
                     os.path.join(source_optional_path, filename),
@@ -114,7 +121,8 @@
     print('Update d8_r8/commonBuildSrc/src/main/kotlin/DependenciesPlugin.kt'
           ' if this is a new dependency.')
     print('Run main method in AndroidApiHashingDatabaseBuilderGeneratorTest'
-        ' to generate the API database.')
+          ' to generate the API database.')
+    return 0
 
 
 if __name__ == '__main__':