| Index: tools/perf/conditionally_execute
|
| diff --git a/tools/perf/conditionally_execute b/tools/perf/conditionally_execute
|
| new file mode 100755
|
| index 0000000000000000000000000000000000000000..302ab4dbae1773dc4dbe7d054a4afa1b1df5ed65
|
| --- /dev/null
|
| +++ b/tools/perf/conditionally_execute
|
| @@ -0,0 +1,39 @@
|
| +#!/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.
|
| +import argparse
|
| +import os
|
| +import subprocess
|
| +import sys
|
| +
|
| +
|
| +def main(args):
|
| + parser = argparse.ArgumentParser()
|
| + parser.add_argument(
|
| + '--gyp-condition', '-c', type=str, required=True,
|
| + help=('The gyp condition that acts as the switch. If the '
|
| + 'condition is found in environment variable GYP_DEFINES, '
|
| + 'this will execute the target script'))
|
| + options, script_args = parser.parse_known_args()
|
| +
|
| + # Make sure that we always execute target script with python.
|
| + if 'python' not in script_args[0]:
|
| + script_args.insert(0, sys.executable)
|
| +
|
| + # A typical GYP_DEFINES string looks s.t like "foo=a bar=1 baz=c". We
|
| + # tokenize the string before doing string matching.
|
| + gyp_defines = os.environ.get('GYP_DEFINES', '').split()
|
| + if options.gyp_condition in gyp_defines:
|
| + print 'Found matching condition in GYP_DEFINES. Execute: %s' % (
|
| + ' '.join(script_args))
|
| + subprocess.check_call(script_args)
|
| + else:
|
| + print ('Not found "%s" condition in GYP_DEFINES="%s". '
|
| + 'Skip script execution.' %
|
| + (options.gyp_condition, gyp_defines))
|
| + return 0
|
| +
|
| +
|
| +if __name__ == '__main__':
|
| + main(sys.argv[1:])
|
|
|