-
大小: 52.75MB文件類型: .gz金幣: 1下載: 0 次發布日期: 2022-12-12
- 語言: 其他
- 標簽: google??depot_tools??
資源簡介
2018年4月27日翻墻下載,最新版本的depot_tools工具——Linux/Mac版本
代碼片段和文件信息
#!/usr/bin/env?python
#?Copyright?2013?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.
“““Wraps?gclient?calls?with?annotated?output.
Note?that?you?will?have?to?use?--?to?stop?option?parsing?for?gclient?flags.
To?run?‘gclient?sync?--gclientfile=.gclient‘?and?annotate?got_v8_revision:
??‘annotated_gclient.py?--revision-mapping=‘{“src/v8“:?“got_v8_revision“}‘?--
??????sync?--gclientfile=.gclient‘
“““
import?contextlib
import?json
import?optparse
import?os
import?subprocess
import?sys
import?tempfile
@contextlib.contextmanager
def?temp_filename(suffix=‘‘?prefix=‘tmp‘):
??output_fd?output_file?=?tempfile.mkstemp(suffix=suffix?prefix=prefix)
??os.close(output_fd)
??yield?output_file
??try:
????os.remove(output_file)
??except?OSError?as?e:
????print?‘Error?cleaning?up?temp?file?%s:?%s‘?%?(output_file?e)
def?parse_got_revision(filename?revision_mapping):
??result?=?{}
??with?open(filename)?as?f:
????data?=?json.load(f)
??for?path?info?in?data[‘solutions‘].iteritems():
????#?gclient?json?paths?always?end?with?a?slash
????path?=?path.rstrip(‘/‘)
????if?path?in?revision_mapping:
??????propname?=?revision_mapping[path]
??????result[propname]?=?info[‘revision‘]
??return?result
def?emit_buildprops(got_revisions):
??for?prop?revision?in?got_revisions.iteritems():
????print?‘@@@SET_BUILD_PROPERTY@%s@%s@@@‘?%?(prop?json.dumps(revision))
def?main():
??parser?=?optparse.OptionParser(
??????description=(‘Runs?gclient?and?annotates?the?output?with?any?‘
???????????????????‘got_revisions.‘))
??parser.add_option(‘--revision-mapping‘?default=‘{}‘
????????????????????help=‘json?dict?of?directory-to-property?mappings.‘)
??parser.add_option(‘--suffix‘?default=‘gclient‘
????????????????????help=‘tempfile?suffix‘)
??opts?args?=?parser.parse_args()
??revision_mapping?=?json.loads(opts.revision_mapping)
??if?not?args:
????parser.error(‘Must?provide?arguments?to?gclient.‘)
??if?any(a.startswith(‘--output-json‘)?for?a?in?args):
????parser.error(‘Can\‘t?call?annotated_gclient?with?--output-json.‘)
??with?temp_filename(opts.suffix)?as?f:
????cmd?=?[‘gclient‘]
????cmd.extend(args)
????cmd.extend([‘--output-json‘?f])
????p?=?subprocess.Popen(cmd)
????p.wait()
????if?p.returncode?==?0:
??????revisions?=?parse_got_revision(f?revision_mapping)
??????emit_buildprops(revisions)
????return?p.returncode
if?__name__?==?‘__main__‘:
??sys.exit(main())
- 上一篇:游戲策劃案學習資料
- 下一篇:征信與大數據 移動互聯時代如何重塑“信用體系”
評論
共有 條評論