| # Copyright 2014 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. |
| |
| import sys |
| |
| import recipe_util # pylint: disable=F0401 |
| |
| |
| # This class doesn't need an __init__ method, so we disable the warning |
| # pylint: disable=W0232 |
| class DepotTools(recipe_util.Recipe): |
| """Basic Recipe class for DepotTools.""" |
| |
| @staticmethod |
| def fetch_spec(props): |
| url = 'https://chromium.googlesource.com/chromium/tools/depot_tools.git' |
| solution = { 'name' :'src', |
| 'url' : url, |
| 'deps_file': '.DEPS.git', |
| 'managed' : False, |
| 'custom_deps': {}, |
| 'safesync_url': '', |
| } |
| spec = { |
| 'solutions': [solution], |
| 'svn_url': 'svn://svn.chromium.org/chrome', |
| 'svn_branch': 'trunk/tools/depot_tools', |
| 'svn_ref': 'master', |
| } |
| if props.get('submodule_git_svn_spec'): |
| spec['submodule_git_svn_spec'] = props['submodule_git_svn_spec'] |
| if props.get('target_os'): |
| spec['target_os'] = props['target_os'].split(',') |
| if props.get('target_os_only'): |
| spec['target_os_only'] = props['target_os_only'] |
| checkout_type = 'gclient_git_svn' |
| if props.get('nosvn'): |
| checkout_type = 'gclient_git' |
| spec_type = '%s_spec' % checkout_type |
| return { |
| 'type': checkout_type, |
| spec_type: spec, |
| } |
| |
| @staticmethod |
| def expected_root(_props): |
| return 'src' |
| |
| |
| def main(argv=None): |
| return DepotTools().handle_args(argv) |
| |
| |
| if __name__ == '__main__': |
| sys.exit(main(sys.argv)) |