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

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

Issue 1469913002: Cleanup gms update/preprocess scripts, roll android_tools (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Address comments Created 5 years 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/play_services/update_test.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
(...skipping 133 matching lines...) Expand 10 before | Expand all | Expand 10 after
144 if that has not been done before. 144 if that has not been done before.
145 ''' 145 '''
146 146
147 if not os.path.isdir(args.sdk_root): 147 if not os.path.isdir(args.sdk_root):
148 logging.debug('Did not find the Android SDK root directory at "%s".', 148 logging.debug('Did not find the Android SDK root directory at "%s".',
149 args.sdk_root) 149 args.sdk_root)
150 if not args.force: 150 if not args.force:
151 logging.info('Skipping, not on an android checkout.') 151 logging.info('Skipping, not on an android checkout.')
152 return 0 152 return 0
153 153
154 paths = PlayServicesPaths(args.sdk_root) 154 config = utils.ConfigParser(args.config)
155 paths = PlayServicesPaths(args.sdk_root, config.version_xml_path)
155 156
156 if os.path.isdir(paths.package) and not os.access(paths.package, os.W_OK): 157 if os.path.isdir(paths.package) and not os.access(paths.package, os.W_OK):
157 logging.error('Failed updating the Google Play Services library. ' 158 logging.error('Failed updating the Google Play Services library. '
158 'The location is not writable. Please remove the ' 159 'The location is not writable. Please remove the '
159 'directory (%s) and try again.', paths.package) 160 'directory (%s) and try again.', paths.package)
160 return -2 161 return -2
161 162
162 new_lib_zip_sha1 = os.path.join(SHA1_DIRECTORY, ZIP_FILE_NAME + '.sha1') 163 new_lib_zip_sha1 = os.path.join(SHA1_DIRECTORY, ZIP_FILE_NAME + '.sha1')
163 164
164 logging.debug('Comparing zip hashes: %s and %s', new_lib_zip_sha1, 165 logging.debug('Comparing zip hashes: %s and %s', new_lib_zip_sha1,
165 paths.lib_zip_sha1) 166 paths.lib_zip_sha1)
166 if utils.FileEquals(new_lib_zip_sha1, paths.lib_zip_sha1) and not args.force: 167 if utils.FileEquals(new_lib_zip_sha1, paths.lib_zip_sha1) and not args.force:
167 logging.info('Skipping, the Google Play services library is up to date.') 168 logging.info('Skipping, the Google Play services library is up to date.')
168 return 0 169 return 0
169 170
170 config = utils.ConfigParser(args.config)
171 bucket_path = _VerifyBucketPathFormat(args.bucket, 171 bucket_path = _VerifyBucketPathFormat(args.bucket,
172 config.version_number, 172 config.version_number,
173 args.dry_run) 173 args.dry_run)
174 174
175 tmp_root = tempfile.mkdtemp() 175 tmp_root = tempfile.mkdtemp()
176 try: 176 try:
177 # setup the destination directory 177 # setup the destination directory
178 if not os.path.isdir(paths.package): 178 if not os.path.isdir(paths.package):
179 os.makedirs(paths.package) 179 os.makedirs(paths.package)
180 180
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
253 storage bucket. 253 storage bucket.
254 254
255 By default, a local commit will be made at the end of the operation. 255 By default, a local commit will be made at the end of the operation.
256 ''' 256 '''
257 257
258 # This should function should not run on bots and could fail for many user 258 # 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 259 # and setup related reasons. Also, exceptions here are not caught, so we
260 # disable breakpad to avoid spamming the logs. 260 # disable breakpad to avoid spamming the logs.
261 breakpad.IS_ENABLED = False 261 breakpad.IS_ENABLED = False
262 262
263 paths = PlayServicesPaths(args.sdk_root) 263 config = utils.ConfigParser(args.config)
264 paths = PlayServicesPaths(args.sdk_root, config.version_xml_path)
264 265
265 if not args.skip_git and utils.IsRepoDirty(constants.DIR_SOURCE_ROOT): 266 if not args.skip_git and utils.IsRepoDirty(constants.DIR_SOURCE_ROOT):
266 logging.error('The repo is dirty. Please commit or stash your changes.') 267 logging.error('The repo is dirty. Please commit or stash your changes.')
267 return -1 268 return -1
268 269
269 config = utils.ConfigParser(args.config)
270
271 new_version_number = utils.GetVersionNumberFromLibraryResources( 270 new_version_number = utils.GetVersionNumberFromLibraryResources(
272 paths.version_xml) 271 paths.version_xml)
273 logging.debug('comparing versions: new=%d, old=%s', 272 logging.debug('comparing versions: new=%d, old=%s',
274 new_version_number, config.version_number) 273 new_version_number, config.version_number)
275 if new_version_number <= config.version_number and not args.force: 274 if new_version_number <= config.version_number and not args.force:
276 logging.info('The checked in version of the library is already the latest ' 275 logging.info('The checked in version of the library is already the latest '
277 'one. No update is needed. Please rerun with --force to skip ' 276 'one. No update is needed. Please rerun with --force to skip '
278 'this check.') 277 'this check.')
279 return 0 278 return 0
280 279
(...skipping 185 matching lines...) Expand 10 before | Expand all | Expand 10 after
466 check if an update is necessary. 465 check if an update is necessary.
467 6. lib: Contains the library itself: jar and resources. This is what is 466 6. lib: Contains the library itself: jar and resources. This is what is
468 downloaded from the cloud storage. 467 downloaded from the cloud storage.
469 7. version_xml: File that contains the exact Google Play services library 468 7. version_xml: File that contains the exact Google Play services library
470 version, the one that we track. The version looks like 811500, is used in 469 version, the one that we track. The version looks like 811500, is used in
471 the code and the on-device APK, as opposed to the SDK package version 470 the code and the on-device APK, as opposed to the SDK package version
472 which looks like 27.0.0 and is used only by the Android SDK manager. 471 which looks like 27.0.0 and is used only by the Android SDK manager.
473 472
474 ''' 473 '''
475 474
476 def __init__(self, sdk_root): 475 def __init__(self, sdk_root, version_xml_path):
477 relative_package = os.path.join('extras', 'google', 'google_play_services') 476 relative_package = os.path.join('extras', 'google', 'google_play_services')
478 relative_lib = os.path.join(relative_package, 'libproject', 477 relative_lib = os.path.join(relative_package, 'libproject',
479 'google-play-services_lib') 478 'google-play-services_lib')
480 self.sdk_root = sdk_root 479 self.sdk_root = sdk_root
481 480
482 self.package = os.path.join(sdk_root, relative_package) 481 self.package = os.path.join(sdk_root, relative_package)
483 self.lib_zip_sha1 = os.path.join(self.package, ZIP_FILE_NAME + '.sha1') 482 self.lib_zip_sha1 = os.path.join(self.package, ZIP_FILE_NAME + '.sha1')
484 self.license = os.path.join(self.package, LICENSE_FILE_NAME) 483 self.license = os.path.join(self.package, LICENSE_FILE_NAME)
485 self.source_prop = os.path.join(self.package, 'source.properties') 484 self.source_prop = os.path.join(self.package, 'source.properties')
486 485
487 self.lib = os.path.join(sdk_root, relative_lib) 486 self.lib = os.path.join(sdk_root, relative_lib)
488 self.version_xml = os.path.join(self.lib, 'res', 'values', 'version.xml') 487 self.version_xml = os.path.join(self.lib, version_xml_path)
489 488
490 489
491 class DummyGsutil(download_from_google_storage.Gsutil): 490 class DummyGsutil(download_from_google_storage.Gsutil):
492 ''' 491 '''
493 Class that replaces Gsutil to use a local directory instead of an online 492 Class that replaces Gsutil to use a local directory instead of an online
494 bucket. It relies on the fact that Gsutil commands are very similar to shell 493 bucket. It relies on the fact that Gsutil commands are very similar to shell
495 ones, so for the ones used here (ls, cp), it works to just use them with a 494 ones, so for the ones used here (ls, cp), it works to just use them with a
496 local directory. 495 local directory.
497 ''' 496 '''
498 497
499 def __init__(self): 498 def __init__(self):
500 super(DummyGsutil, self).__init__( 499 super(DummyGsutil, self).__init__(
501 download_from_google_storage.GSUTIL_DEFAULT_PATH) 500 download_from_google_storage.GSUTIL_DEFAULT_PATH)
502 501
503 def call(self, *args): 502 def call(self, *args):
504 logging.debug('Calling command "%s"', str(args)) 503 logging.debug('Calling command "%s"', str(args))
505 return cmd_helper.GetCmdStatusOutputAndError(args) 504 return cmd_helper.GetCmdStatusOutputAndError(args)
506 505
507 def check_call(self, *args): 506 def check_call(self, *args):
508 logging.debug('Calling command "%s"', str(args)) 507 logging.debug('Calling command "%s"', str(args))
509 return cmd_helper.GetCmdStatusOutputAndError(args) 508 return cmd_helper.GetCmdStatusOutputAndError(args)
510 509
511 510
512 if __name__ == '__main__': 511 if __name__ == '__main__':
513 sys.exit(main(sys.argv[1:])) 512 sys.exit(main(sys.argv[1:]))
OLDNEW
« no previous file with comments | « build/android/play_services/preprocess.py ('k') | build/android/play_services/update_test.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698