| Index: tools/run_hooks.py
|
| diff --git a/tools/run_hooks.py b/tools/run_hooks.py
|
| new file mode 100755
|
| index 0000000000000000000000000000000000000000..52e27a0e30fed9ba2644cd4bd79e2ff1285f8666
|
| --- /dev/null
|
| +++ b/tools/run_hooks.py
|
| @@ -0,0 +1,42 @@
|
| +#!/usr/bin/env python
|
| +# Copyright 2015 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.
|
| +
|
| +# This script runs all of the hooks specified in DEPS in order.
|
| +
|
| +import os
|
| +import subprocess
|
| +import sys
|
| +
|
| +scope = {}
|
| +
|
| +def Var(key):
|
| + return scope["vars"][key]
|
| +
|
| +scope["Var"] = Var
|
| +
|
| +def main(args):
|
| + gclient_path = os.path.abspath(os.path.join(os.path.dirname(__file__),
|
| + os.pardir, os.pardir))
|
| + deps_path = os.path.join(gclient_path, "src", "DEPS")
|
| + with open(deps_path) as deps_contents:
|
| + d = deps_contents.read()
|
| + exec(d, scope)
|
| + env = os.environ
|
| + # Some hooks expect depot_tools to be in the PATH already so add the default
|
| + # location of depot_tools in a standard checkout to the environment the hooks
|
| + # run in.
|
| + default_depot_tools_path = os.path.abspath(os.path.join(gclient_path,
|
| + "depot_tools"))
|
| + env["PATH"] += os.pathsep + default_depot_tools_path
|
| + for hook in scope["hooks"]:
|
| + name = hook["name"]
|
| + print "________ running '%s' in '%s'" % (" ".join(hook["action"]),
|
| + gclient_path)
|
| + subprocess.check_call(hook["action"], cwd=gclient_path, env=env)
|
| + print
|
| + return 0
|
| +
|
| +if __name__ == '__main__':
|
| + sys.exit(main(sys.argv[1:]))
|
|
|