|  | #!/usr/bin/env python | 
|  | # Copyright 2017 The Chromium Authors. All rights reserved. | 
|  | # Use of this source code is governed by a BSD-style license that can be | 
|  | # found in the LICENSE file. | 
|  |  | 
|  | """Script to download lld/mac from google storage.""" | 
|  |  | 
|  | import os | 
|  | import re | 
|  | import subprocess | 
|  | import sys | 
|  |  | 
|  | import update | 
|  |  | 
|  | LLVM_BUILD_DIR = update.LLVM_BUILD_DIR | 
|  | LLD_LINK_PATH = os.path.join(LLVM_BUILD_DIR, 'bin', 'lld-link') | 
|  |  | 
|  |  | 
|  | def AlreadyUpToDate(): | 
|  | if not os.path.exists(LLD_LINK_PATH): | 
|  | return False | 
|  | lld_rev = subprocess.check_output([LLD_LINK_PATH, '--version']) | 
|  | # Version output example: | 
|  | # LLD 9.0.0 (https://github.com/llvm/llvm-project/ 342571e8d6eb1afb151ae1103431798e3d24054f) | 
|  | return (re.match(r'LLD.*\(.*git.*llvm.* ([0-9a-f]+)\)', lld_rev).group(1) == | 
|  | update.CLANG_REVISION) | 
|  |  | 
|  |  | 
|  | def main(): | 
|  | if AlreadyUpToDate(): | 
|  | return 0 | 
|  | remote_path = '%s/Mac/lld-%s.tgz' % (update.CDS_URL, update.PACKAGE_VERSION) | 
|  | update.DownloadAndUnpack(remote_path, update.LLVM_BUILD_DIR) | 
|  | return 0 | 
|  |  | 
|  |  | 
|  | if __name__ == '__main__': | 
|  | sys.exit(main()) |