Chromium Code Reviews| Index: dart/tools/only_in_release_mode.py |
| diff --git a/dart/tools/only_in_release_mode.py b/dart/tools/only_in_release_mode.py |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..3c7514d9a8fe3887b97050192325bbbb23742ccc |
| --- /dev/null |
| +++ b/dart/tools/only_in_release_mode.py |
| @@ -0,0 +1,51 @@ |
| +#!/usr/bin/env python |
| +# |
| +# Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file |
| +# for details. All rights reserved. Use of this source code is governed by a |
| +# BSD-style license that can be found in the LICENSE file. |
| + |
| +""" |
| +Wrapper around a build action that should only be executed in "release" mode. |
| + |
| +The following options are accepted: |
| + |
| + --mode=[release,debug] |
| + |
| + --outputs=files... |
| + |
| +If mode is not 'release', the script will create the files listed in |
| +outputs. If mode is release, the script will execute the remaining |
| +command line arguments as a command. |
|
kustermann
2013/04/08 12:30:54
Would be nice if you can include an example here e
ahe
2013/04/08 12:42:46
Done.
|
| +""" |
| + |
| +import optparse |
| +import subprocess |
| +import sys |
| + |
| + |
| +def BuildOptions(): |
| + result = optparse.OptionParser() |
| + result.add_option('-m', '--mode') |
| + result.add_option('-o', '--outputs') |
| + return result |
| + |
| + |
| +def Main(): |
| + (options, arguments) = BuildOptions().parse_args() |
| + if options.mode != 'release': |
| + print >> sys.stderr, 'Not running %s in mode=%s' % (arguments, |
| + options.mode) |
| + for output in options.outputs.strip('"').split('" "'): |
| + with open(output, 'w'): |
|
kustermann
2013/04/08 12:30:54
Add a comment (or a print statement) saying that y
ahe
2013/04/08 12:42:46
Done.
|
| + pass |
| + return 0 |
| + else: |
| + try: |
| + subprocess.check_call(arguments) |
| + except subprocess.CalledProcessError as e: |
| + return e.returncode |
| + return 0 |
| + |
| + |
| +if __name__ == '__main__': |
| + sys.exit(Main()) |