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

Side by Side Diff: build_tools/sdk_tools/sdk_update.py

Issue 8566045: Updated update_manifest.py to push manifest files to server (Closed) Base URL: https://nativeclient-sdk.googlecode.com/svn/trunk/src
Patch Set: merge Created 9 years, 1 month 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 | Annotate | Revision Log
« no previous file with comments | « build_tools/build.scons ('k') | build_tools/sdk_tools/update_manifest.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/python 1 #!/usr/bin/python
2 # Copyright (c) 2011 The Native Client Authors. All rights reserved. 2 # Copyright (c) 2011 The Native Client 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 '''A simple tool to update the Native Client SDK to the latest version''' 6 '''A simple tool to update the Native Client SDK to the latest version'''
7 7
8 import cStringIO 8 import cStringIO
9 import errno 9 import errno
10 import exceptions 10 import exceptions
11 import hashlib 11 import hashlib
12 import json 12 import json
13 import optparse 13 import optparse
14 import os 14 import os
15 import shutil 15 import shutil
16 import subprocess 16 import subprocess
17 import sys 17 import sys
18 import tarfile 18 import tarfile
19 import tempfile 19 import tempfile
20 import time 20 import time
21 import urllib2 21 import urllib2
22 import urlparse 22 import urlparse
23 23
24 24
25 #------------------------------------------------------------------------------ 25 #------------------------------------------------------------------------------
26 # Constants 26 # Constants
27 27
28 # Bump the MINOR_REV every time you check this file in. 28 # Bump the MINOR_REV every time you check this file in.
29 MAJOR_REV = 1 29 MAJOR_REV = 1
30 MINOR_REV = 12 30 MINOR_REV = 13
31 31
32 GLOBAL_HELP = '''Usage: naclsdk [options] command [command_options] 32 GLOBAL_HELP = '''Usage: naclsdk [options] command [command_options]
33 33
34 naclsdk is a simple utility that updates the Native Client (NaCl) 34 naclsdk is a simple utility that updates the Native Client (NaCl)
35 Software Developer's Kit (SDK). Each component is kept as a 'bundle' that 35 Software Developer's Kit (SDK). Each component is kept as a 'bundle' that
36 this utility can download as as subdirectory into the SDK. 36 this utility can download as as subdirectory into the SDK.
37 37
38 Commands: 38 Commands:
39 help [command] - Get either general or command-specific help 39 help [command] - Get either general or command-specific help
40 list - Lists the available bundles 40 list - Lists the available bundles
(...skipping 428 matching lines...) Expand 10 before | Expand all | Expand 10 after
469 469
470 def Update(self, url): 470 def Update(self, url):
471 ''' Update the archive with the new url. Automatically update the 471 ''' Update the archive with the new url. Automatically update the
472 archive's size and checksum fields. Raises an Error if the url is 472 archive's size and checksum fields. Raises an Error if the url is
473 is invalid. ''' 473 is invalid. '''
474 self['url'] = url 474 self['url'] = url
475 sha1, size = self.ComputeSha1AndSize() 475 sha1, size = self.ComputeSha1AndSize()
476 self['size'] = size 476 self['size'] = size
477 self['checksum'] = {'sha1': sha1} 477 self['checksum'] = {'sha1': sha1}
478 478
479 def GetUrl(self):
480 '''Returns the URL of this Archive'''
481 return self['url']
482
483 def GetSize(self):
484 '''Returns the size of this archive, in bytes'''
485 return int(self['size'])
486
487 def GetChecksum(self, type='sha1'):
488 '''Returns a given cryptographic checksum of the archive'''
489 return self['checksum'][type]
490
479 491
480 class Bundle(dict): 492 class Bundle(dict):
481 ''' A placeholder for sdk bundle information. We derive Bundle from 493 ''' A placeholder for sdk bundle information. We derive Bundle from
482 dict so that it is easily serializable.''' 494 dict so that it is easily serializable.'''
483 def __init__(self, obj): 495 def __init__(self, obj):
484 ''' Create a new bundle with the given bundle name.''' 496 ''' Create a new bundle with the given bundle name.'''
485 if isinstance(obj, str) or isinstance(obj, unicode): 497 if isinstance(obj, str) or isinstance(obj, unicode):
486 dict.__init__(self, [(ARCHIVES_KEY, []), (NAME_KEY, obj)]) 498 dict.__init__(self, [(ARCHIVES_KEY, []), (NAME_KEY, obj)])
487 else: 499 else:
488 dict.__init__(self, obj) 500 dict.__init__(self, obj)
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after
575 587
576 Args: 588 Args:
577 host_os: name of host os whose archive must be updated or created. 589 host_os: name of host os whose archive must be updated or created.
578 url: the new url for the archive.''' 590 url: the new url for the archive.'''
579 archive = self.GetArchive(host_os) 591 archive = self.GetArchive(host_os)
580 if not archive: 592 if not archive:
581 archive = Archive(host_os_name=host_os) 593 archive = Archive(host_os_name=host_os)
582 self[ARCHIVES_KEY].append(archive) 594 self[ARCHIVES_KEY].append(archive)
583 archive.Update(url) 595 archive.Update(url)
584 596
597 def GetArchives(self):
598 '''Returns all the archives in this bundle'''
599 return self[ARCHIVES_KEY]
600
585 601
586 class SDKManifest(object): 602 class SDKManifest(object):
587 '''This class contains utilities for manipulation an SDK manifest string 603 '''This class contains utilities for manipulation an SDK manifest string
588 604
589 For ease of unit-testing, this class should not contain any file I/O. 605 For ease of unit-testing, this class should not contain any file I/O.
590 ''' 606 '''
591 607
592 def __init__(self): 608 def __init__(self):
593 '''Create a new SDKManifest object with default contents''' 609 '''Create a new SDKManifest object with default contents'''
594 self.MANIFEST_VERSION = 1 610 self.MANIFEST_VERSION = 1
(...skipping 435 matching lines...) Expand 10 before | Expand all | Expand 10 after
1030 if __name__ == '__main__': 1046 if __name__ == '__main__':
1031 return_value = 1 1047 return_value = 1
1032 try: 1048 try:
1033 return_value = main(sys.argv[1:]) 1049 return_value = main(sys.argv[1:])
1034 except exceptions.SystemExit: 1050 except exceptions.SystemExit:
1035 raise 1051 raise
1036 except Error as error: 1052 except Error as error:
1037 print "Error: %s" % error 1053 print "Error: %s" % error
1038 1054
1039 sys.exit(return_value) 1055 sys.exit(return_value)
OLDNEW
« no previous file with comments | « build_tools/build.scons ('k') | build_tools/sdk_tools/update_manifest.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698