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

Side by Side Diff: build/download_nacl_irt.py

Issue 6966010: NaCl: Allow download_nacl_irt.py to be usefully invoked with no arguments (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 9 years, 7 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 | Annotate | Revision Log
« no previous file with comments | « no previous file | no next file » | 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 (c) 2011 The Chromium Authors. All rights reserved. 2 # Copyright (c) 2011 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 import hashlib 6 import hashlib
7 import optparse 7 import optparse
8 import os 8 import os
9 import urllib2 9 import urllib2
10 import sys 10 import sys
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after
112 break 112 break
113 except urllib2.HTTPError, exn: 113 except urllib2.HTTPError, exn:
114 if exn.getcode() == 404: 114 if exn.getcode() == 404:
115 raise 115 raise
116 sys.stdout.write('Download failed with error %r. Retrying...\n' 116 sys.stdout.write('Download failed with error %r. Retrying...\n'
117 % str(exn)) 117 % str(exn))
118 sys.stdout.flush() 118 sys.stdout.flush()
119 time.sleep(1) 119 time.sleep(1)
120 120
121 121
122 def EvalDepsFile(path):
123 scope = {'Var': lambda name: scope['vars'][name]}
124 execfile(path, {}, scope)
125 return scope
126
127
122 def Main(): 128 def Main():
123 parser = optparse.OptionParser() 129 parser = optparse.OptionParser()
124 parser.add_option( 130 parser.add_option(
125 '--base_url', dest='base_url', 131 '--base_url', dest='base_url',
126 # For a view of this site that includes directory listings, see: 132 # For a view of this site that includes directory listings, see:
127 # http://gsdview.appspot.com/nativeclient-archive2/ 133 # http://gsdview.appspot.com/nativeclient-archive2/
128 # (The trailing slash is required.) 134 # (The trailing slash is required.)
129 default=('http://commondatastorage.googleapis.com/' 135 default=('http://commondatastorage.googleapis.com/'
130 'nativeclient-archive2/irt'), 136 'nativeclient-archive2/irt'),
131 help='Base URL from which to download.') 137 help='Base URL from which to download.')
132 parser.add_option( 138 parser.add_option(
133 '--nacl_revision', dest='nacl_revision', 139 '--nacl_revision', dest='nacl_revision',
134 help='Download an IRT binary that was built from this ' 140 help='Download an IRT binary that was built from this '
135 'SVN revision of Native Client.') 141 'SVN revision of Native Client.')
136 parser.add_option( 142 parser.add_option(
137 '--file_hash', dest='file_hashes', action='append', nargs=2, default=[], 143 '--file_hash', dest='file_hashes', action='append', nargs=2, default=[],
138 metavar='ARCH HASH', 144 metavar='ARCH HASH',
139 help='ARCH gives the name of the architecture (e.g. "x86_32") for ' 145 help='ARCH gives the name of the architecture (e.g. "x86_32") for '
140 'which to download an IRT binary. ' 146 'which to download an IRT binary. '
141 'HASH gives the expected SHA1 hash of the file.') 147 'HASH gives the expected SHA1 hash of the file.')
142 options, args = parser.parse_args() 148 options, args = parser.parse_args()
143 if len(args) != 0: 149 if len(args) != 0:
144 parser.error('Unexpected arguments: %r' % args) 150 parser.error('Unexpected arguments: %r' % args)
145 151
152 if options.nacl_revision is None and len(options.file_hashes) == 0:
153 # The script must have been invoked directly with no arguments,
154 # rather than being invoked by gclient. In this case, read the
155 # DEPS file ourselves rather than having gclient pass us values
156 # from DEPS.
157 deps_data = EvalDepsFile(os.path.join('src', 'DEPS'))
Paweł Hajdan Jr. 2011/05/09 14:08:48 This is duplicating some gclient code and it's rel
158 options.nacl_revision = deps_data['vars']['nacl_revision']
159 options.file_hashes = [
160 ('x86_32', deps_data['vars']['nacl_irt_hash_x86_32']),
161 ('x86_64', deps_data['vars']['nacl_irt_hash_x86_64']),
162 ]
163
146 nacl_dir = os.path.join('src', 'native_client') 164 nacl_dir = os.path.join('src', 'native_client')
147 if not os.path.exists(nacl_dir): 165 if not os.path.exists(nacl_dir):
148 # If "native_client" is not present, this might be because the 166 # If "native_client" is not present, this might be because the
149 # developer has put '"src/native_client": None' in their 167 # developer has put '"src/native_client": None' in their
150 # '.gclient' file, because they don't want to build Chromium with 168 # '.gclient' file, because they don't want to build Chromium with
151 # Native Client support. So don't create 'src/native_client', 169 # Native Client support. So don't create 'src/native_client',
152 # because that would interfere with checking it out from SVN 170 # because that would interfere with checking it out from SVN
153 # later. 171 # later.
154 sys.stdout.write( 172 sys.stdout.write(
155 'The directory %r does not exist: skipping downloading binaries ' 173 'The directory %r does not exist: skipping downloading binaries '
(...skipping 22 matching lines...) Expand all
178 196
179 if len(new_deps) > 0: 197 if len(new_deps) > 0:
180 sys.stdout.write('\nIf you have changed nacl_revision, the DEPS file ' 198 sys.stdout.write('\nIf you have changed nacl_revision, the DEPS file '
181 'probably needs to be updated with the following:\n%s\n' 199 'probably needs to be updated with the following:\n%s\n'
182 % ''.join(new_deps)) 200 % ''.join(new_deps))
183 sys.exit(1) 201 sys.exit(1)
184 202
185 203
186 if __name__ == '__main__': 204 if __name__ == '__main__':
187 Main() 205 Main()
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698