Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(598)

Side by Side Diff: build/android/play_services/update.py

Issue 1571803002: [Android] Prepare build/android/ for catapult+devil. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@create-device-library-links
Patch Set: rebase Created 4 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « build/android/play_services/preprocess.py ('k') | build/android/provision_devices.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #!/usr/bin/env python 1 #!/usr/bin/env python
2 # Copyright 2015 The Chromium Authors. All rights reserved. 2 # Copyright 2015 The Chromium Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be 3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file. 4 # found in the LICENSE file.
5 5
6 ''' 6 '''
7 Script to help uploading and downloading the Google Play services library to 7 Script to help uploading and downloading the Google Play services library to
8 and from a Google Cloud storage. 8 and from a Google Cloud storage.
9 ''' 9 '''
10 10
11 import argparse 11 import argparse
12 import logging 12 import logging
13 import os 13 import os
14 import re 14 import re
15 import shutil 15 import shutil
16 import sys 16 import sys
17 import tempfile 17 import tempfile
18 import zipfile 18 import zipfile
19 19
20 sys.path.append(os.path.join(os.path.dirname(__file__), os.pardir)) 20 sys.path.append(os.path.join(os.path.dirname(__file__), os.pardir))
21 import devil_chromium
21 from devil.utils import cmd_helper 22 from devil.utils import cmd_helper
22 from play_services import utils 23 from play_services import utils
23 from pylib import constants 24 from pylib import constants
25 from pylib.constants import host_paths
24 from pylib.utils import logging_utils 26 from pylib.utils import logging_utils
25 27
26 sys.path.append(os.path.join(constants.DIR_SOURCE_ROOT, 'build')) 28 sys.path.append(os.path.join(host_paths.DIR_SOURCE_ROOT, 'build'))
27 import find_depot_tools # pylint: disable=import-error,unused-import 29 import find_depot_tools # pylint: disable=import-error,unused-import
28 import breakpad 30 import breakpad
29 import download_from_google_storage 31 import download_from_google_storage
30 import upload_to_google_storage 32 import upload_to_google_storage
31 33
32 34
33 # Directory where the SHA1 files for the zip and the license are stored 35 # Directory where the SHA1 files for the zip and the license are stored
34 # It should be managed by git to provided information about new versions. 36 # It should be managed by git to provided information about new versions.
35 SHA1_DIRECTORY = os.path.join(constants.DIR_SOURCE_ROOT, 'build', 'android', 37 SHA1_DIRECTORY = os.path.join(host_paths.DIR_SOURCE_ROOT, 'build', 'android',
36 'play_services') 38 'play_services')
37 39
38 # Default bucket used for storing the files. 40 # Default bucket used for storing the files.
39 GMS_CLOUD_STORAGE = 'chromium-android-tools/play-services' 41 GMS_CLOUD_STORAGE = 'chromium-android-tools/play-services'
40 42
41 # Path to the default configuration file. It exposes the currently installed 43 # Path to the default configuration file. It exposes the currently installed
42 # version of the library in a human readable way. 44 # version of the library in a human readable way.
43 CONFIG_DEFAULT_PATH = os.path.join(constants.DIR_SOURCE_ROOT, 'build', 45 CONFIG_DEFAULT_PATH = os.path.join(host_paths.DIR_SOURCE_ROOT, 'build',
44 'android', 'play_services', 'config.json') 46 'android', 'play_services', 'config.json')
45 47
46 LICENSE_FILE_NAME = 'LICENSE' 48 LICENSE_FILE_NAME = 'LICENSE'
47 ZIP_FILE_NAME = 'google_play_services_library.zip' 49 ZIP_FILE_NAME = 'google_play_services_library.zip'
48 GMS_PACKAGE_ID = 'extra-google-google_play_services' # used by sdk manager 50 GMS_PACKAGE_ID = 'extra-google-google_play_services' # used by sdk manager
49 51
50 LICENSE_PATTERN = re.compile(r'^Pkg\.License=(?P<text>.*)$', re.MULTILINE) 52 LICENSE_PATTERN = re.compile(r'^Pkg\.License=(?P<text>.*)$', re.MULTILINE)
51 53
52 54
53 def main(raw_args): 55 def main(raw_args):
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
86 action='store_true', 88 action='store_true',
87 help="don't commit the changes at the end") 89 help="don't commit the changes at the end")
88 parser_upload.set_defaults(func=Upload) 90 parser_upload.set_defaults(func=Upload)
89 AddBasicArguments(parser_upload) 91 AddBasicArguments(parser_upload)
90 AddBucketArguments(parser_upload) 92 AddBucketArguments(parser_upload)
91 93
92 args = parser.parse_args(raw_args) 94 args = parser.parse_args(raw_args)
93 if args.verbose: 95 if args.verbose:
94 logging.basicConfig(level=logging.DEBUG) 96 logging.basicConfig(level=logging.DEBUG)
95 logging_utils.ColorStreamHandler.MakeDefault(not _IsBotEnvironment()) 97 logging_utils.ColorStreamHandler.MakeDefault(not _IsBotEnvironment())
98 devil_chromium.Initialize()
96 return args.func(args) 99 return args.func(args)
97 100
98 101
99 def AddBasicArguments(parser): 102 def AddBasicArguments(parser):
100 ''' 103 '''
101 Defines the common arguments on subparser rather than the main one. This 104 Defines the common arguments on subparser rather than the main one. This
102 allows to put arguments after the command: `foo.py upload --debug --force` 105 allows to put arguments after the command: `foo.py upload --debug --force`
103 instead of `foo.py --debug upload --force` 106 instead of `foo.py --debug upload --force`
104 ''' 107 '''
105 108
(...skipping 150 matching lines...) Expand 10 before | Expand all | Expand 10 after
256 ''' 259 '''
257 260
258 # This should function should not run on bots and could fail for many user 261 # This should function should not run on bots and could fail for many user
259 # and setup related reasons. Also, exceptions here are not caught, so we 262 # and setup related reasons. Also, exceptions here are not caught, so we
260 # disable breakpad to avoid spamming the logs. 263 # disable breakpad to avoid spamming the logs.
261 breakpad.IS_ENABLED = False 264 breakpad.IS_ENABLED = False
262 265
263 config = utils.ConfigParser(args.config) 266 config = utils.ConfigParser(args.config)
264 paths = PlayServicesPaths(args.sdk_root, config.version_xml_path) 267 paths = PlayServicesPaths(args.sdk_root, config.version_xml_path)
265 268
266 if not args.skip_git and utils.IsRepoDirty(constants.DIR_SOURCE_ROOT): 269 if not args.skip_git and utils.IsRepoDirty(host_paths.DIR_SOURCE_ROOT):
267 logging.error('The repo is dirty. Please commit or stash your changes.') 270 logging.error('The repo is dirty. Please commit or stash your changes.')
268 return -1 271 return -1
269 272
270 new_version_number = utils.GetVersionNumberFromLibraryResources( 273 new_version_number = utils.GetVersionNumberFromLibraryResources(
271 paths.version_xml) 274 paths.version_xml)
272 logging.debug('comparing versions: new=%d, old=%s', 275 logging.debug('comparing versions: new=%d, old=%s',
273 new_version_number, config.version_number) 276 new_version_number, config.version_number)
274 if new_version_number <= config.version_number and not args.force: 277 if new_version_number <= config.version_number and not args.force:
275 logging.info('The checked in version of the library is already the latest ' 278 logging.info('The checked in version of the library is already the latest '
276 'one. No update is needed. Please rerun with --force to skip ' 279 'one. No update is needed. Please rerun with --force to skip '
(...skipping 22 matching lines...) Expand all
299 shutil.copy(new_lib_zip + '.sha1', new_lib_zip_sha1) 302 shutil.copy(new_lib_zip + '.sha1', new_lib_zip_sha1)
300 shutil.copy(new_license + '.sha1', new_license_sha1) 303 shutil.copy(new_license + '.sha1', new_license_sha1)
301 finally: 304 finally:
302 shutil.rmtree(tmp_root) 305 shutil.rmtree(tmp_root)
303 306
304 config.UpdateVersionNumber(new_version_number) 307 config.UpdateVersionNumber(new_version_number)
305 308
306 if not args.skip_git: 309 if not args.skip_git:
307 commit_message = ('Update the Google Play services dependency to %s\n' 310 commit_message = ('Update the Google Play services dependency to %s\n'
308 '\n') % new_version_number 311 '\n') % new_version_number
309 utils.MakeLocalCommit(constants.DIR_SOURCE_ROOT, 312 utils.MakeLocalCommit(host_paths.DIR_SOURCE_ROOT,
310 [new_lib_zip_sha1, new_license_sha1, config.path], 313 [new_lib_zip_sha1, new_license_sha1, config.path],
311 commit_message) 314 commit_message)
312 315
313 return 0 316 return 0
314 317
315 318
316 def _DownloadFromBucket(bucket_path, sha1_file, destination, verbose, 319 def _DownloadFromBucket(bucket_path, sha1_file, destination, verbose,
317 is_dry_run): 320 is_dry_run):
318 '''Downloads the file designated by the provided sha1 from a cloud bucket.''' 321 '''Downloads the file designated by the provided sha1 from a cloud bucket.'''
319 322
(...skipping 183 matching lines...) Expand 10 before | Expand all | Expand 10 after
503 logging.debug('Calling command "%s"', str(args)) 506 logging.debug('Calling command "%s"', str(args))
504 return cmd_helper.GetCmdStatusOutputAndError(args) 507 return cmd_helper.GetCmdStatusOutputAndError(args)
505 508
506 def check_call(self, *args): 509 def check_call(self, *args):
507 logging.debug('Calling command "%s"', str(args)) 510 logging.debug('Calling command "%s"', str(args))
508 return cmd_helper.GetCmdStatusOutputAndError(args) 511 return cmd_helper.GetCmdStatusOutputAndError(args)
509 512
510 513
511 if __name__ == '__main__': 514 if __name__ == '__main__':
512 sys.exit(main(sys.argv[1:])) 515 sys.exit(main(sys.argv[1:]))
OLDNEW
« no previous file with comments | « build/android/play_services/preprocess.py ('k') | build/android/provision_devices.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698