| # Copyright (c) 2011 The Chromium Embedded Framework Authors. |
| # Portions copyright (c) 2011 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. |
| |
| from __future__ import absolute_import |
| from __future__ import print_function |
| import os, sys |
| |
| try: |
| # depot_tools may already be in the import path. |
| import gclient_utils |
| except ImportError as e: |
| # Search the PATH environment variable to find the depot_tools folder. |
| depot_tools = None |
| paths = os.environ.get('PATH').split(os.pathsep) |
| for path in paths: |
| if os.path.exists(os.path.join(path, 'gclient_utils.py')): |
| depot_tools = path |
| break |
| |
| if depot_tools is None: |
| print('Error: could not find depot_tools in PATH.', file=sys.stderr) |
| sys.exit(2) |
| |
| # Add depot_tools to import path. |
| sys.path.append(depot_tools) |
| import gclient_utils |
| |
| |
| # Copied from gclient.py python code. |
| def RunAction(dir, command): |
| """Runs the action.""" |
| try: |
| gclient_utils.CheckCallAndFilter( |
| command, cwd=dir, always_show_header=True, print_stdout=True) |
| except gclient_utils.Error as e: |
| # Use a discrete exit status code of 2 to indicate that a hook action |
| # failed. Users of this script may wish to treat hook action failures |
| # differently from VC failures. |
| print('Error: %s' % str(e), file=sys.stderr) |
| sys.exit(2) |