| Left: | ||
| Right: |
| LEFT | RIGHT |
|---|---|
| 1 import os | 1 import os |
| 2 import urllib | |
| 3 import zipfile | |
| 4 import sys | 2 import sys |
| 5 import subprocess | 3 import subprocess |
| 6 import shutil | 4 import shutil |
| 7 | 5 |
| 6 | |
| 8 def get_dst_path(): | 7 def get_dst_path(): |
| 9 cwd = os.getcwd() | 8 cwd = os.getcwd() |
| 10 return os.path.join(cwd, 'src', 'third_party', 'libadblockplus_android', 'thir d_party', 'android_sdk') | 9 return os.path.join(cwd, 'src', 'third_party', |
| 10 'libadblockplus_android', 'third_party', 'android_sdk') | |
| 11 | |
| 11 | 12 |
| 12 def duplicate_sdk(): | 13 def duplicate_sdk(): |
| 13 cwd = os.getcwd() | 14 cwd = os.getcwd() |
| 14 sdk_src = os.path.join(cwd, 'src', 'third_party', 'android_tools', 'sdk') | 15 sdk_src = os.path.join(cwd, 'src', 'third_party', 'android_tools', 'sdk') |
| 15 sdk_dst = get_dst_path() | 16 sdk_dst = get_dst_path() |
| 16 | 17 |
| 17 if os.path.exists(sdk_dst): | 18 if os.path.exists(sdk_dst): |
| 18 print('Deleting %s' % sdk_dst) | 19 print('Deleting {}'.format(sdk_dst)) |
| 19 shutil.rmtree(sdk_dst) | 20 shutil.rmtree(sdk_dst) |
| 20 else: | 21 else: |
| 21 dst_parent = os.path.abspath(os.path.join(sdk_dst, os.pardir)) | 22 dst_parent = os.path.abspath(os.path.join(sdk_dst, os.pardir)) |
| 22 print('Creating %s' % dst_parent) | 23 print('Creating {}'.format(dst_parent)) |
| 23 os.makedirs(dst_parent) | 24 os.makedirs(dst_parent) |
| 24 | 25 |
| 25 print('Copying Android SDK from %s to %s' % (sdk_src, sdk_dst)) | 26 print('Copying Android SDK from {} to {}'.format(sdk_src, sdk_dst)) |
| 26 shutil.copytree(sdk_src, sdk_dst) | 27 shutil.copytree(sdk_src, sdk_dst) |
| 28 | |
| 27 | 29 |
| 28 def install(title, package, version, verbose=False): | 30 def install(title, package, version, verbose=False): |
| 29 print('Installing %s ...' % title) | 31 print('Installing {} ...'.format(title)) |
| 30 | 32 |
| 31 cwd = os.getcwd() | 33 sdk_root = get_dst_path() |
| 32 sdk_root = get_dst_path() | 34 sdkmanager = os.path.join(sdk_root, 'tools', 'bin', 'sdkmanager') |
| 33 sdkmanager = os.path.join(sdk_root, 'tools', 'bin', 'sdkmanager') | |
| 34 | 35 |
| 35 args = [ | 36 args = [ |
| 36 sdkmanager, | 37 sdkmanager, |
| 37 "--sdk_root=%s" % (sdk_root), | 38 '--sdk_root={}'.format(sdk_root), |
| 38 "%s;%s" % (package, version) | 39 '{};{}'.format(package, version) |
| 39 ] | 40 ] |
| 40 | 41 |
| 41 if verbose: | 42 if verbose: |
| 42 args += [ "--verbose" ] | 43 args += ['--verbose'] |
| 43 | 44 |
| 44 process = subprocess.Popen(args, stdin=subprocess.PIPE, stdout=sys.stdout, std err=sys.stderr) | 45 process = subprocess.Popen(args, stdin=subprocess.PIPE, |
| 45 process.stdin.write('y') # Agree to License | 46 stdout=sys.stdout, stderr=sys.stderr) |
| 46 process.communicate() | |
| 47 process.stdin.close() | |
| 48 | 47 |
| 49 if process.returncode != 0: | 48 # Agree to License |
| 50 print("%s finished with error code %s" % (args, process.returncode)) | 49 process.stdin.write('y') |
| 50 process.communicate() | |
| 51 process.stdin.close() | |
| 51 | 52 |
| 52 return process.returncode | 53 if process.returncode != 0: |
| 54 print('{} finished with error code {}'.format( | |
| 55 args, process.returncode)) | |
| 56 | |
| 57 return process.returncode | |
| 58 | |
| 53 | 59 |
| 54 def main(argv): | 60 def main(argv): |
| 55 duplicate_sdk() | 61 duplicate_sdk() |
| 56 | 62 |
| 57 # TODO: update when different version of built-tools and platform are required | 63 # TODO: update when different version of built-tools |
| 58 bt25 = install("Build tools", "build-tools", "25.0.0", True) | 64 # and platform are required |
| 59 if bt25 != 0: | 65 bt25 = install('Build tools', 'build-tools', '25.0.0', True) |
| 60 return bt25 | 66 if bt25 != 0: |
| 67 return bt25 | |
| 61 | 68 |
| 62 a16 = install("Platform 16", "platforms", "android-16", True) | 69 a16 = install('Platform 16', 'platforms', 'android-16', True) |
| 63 if a16 != 0: | 70 if a16 != 0: |
| 64 return a16 | 71 return a16 |
| 65 | 72 |
| 66 a21 = install("Platform 21", "platforms", "android-21", True) | 73 a21 = install('Platform 21', 'platforms', 'android-21', True) |
| 67 if a21 != 0: | 74 if a21 != 0: |
| 68 return a21 | 75 return a21 |
| 69 | 76 |
| 70 return 0 | 77 return 0 |
| 78 | |
| 71 | 79 |
| 72 if '__main__' == __name__: | 80 if '__main__' == __name__: |
| 73 try: | 81 try: |
| 74 sys.exit(main(sys.argv[1:])) | 82 sys.exit(main(sys.argv[1:])) |
| 75 except KeyboardInterrupt: | 83 except KeyboardInterrupt: |
| 76 sys.stderr.write('interrupted\n') | 84 sys.stderr.write('interrupted\n') |
| 77 sys.exit(1) | 85 sys.exit(1) |
|
diegocarloslima
2018/01/17 13:08:53
Some of the changes here could go in a refactoring
anton
2018/01/17 13:12:11
I've created separate task for applying python cod
| |
| LEFT | RIGHT |