#!/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 mode is defined via an environment variable DART_BUILD_MODE. The arguments to the script are: only_in_release_mode.py files... -- command arguments... If mode is not 'release', the script will create the files listed before --. If mode is release, the script will execute the command after --. """ import os import subprocess import sys def Main(): # Throws an error if '--' is not in the argument list. separator_index = sys.argv.index('--') outputs = sys.argv[1:separator_index] arguments = sys.argv[separator_index + 1:] arguments[0] = os.path.normpath(arguments[0]) mode = os.getenv('DART_BUILD_MODE', 'release') if mode != 'release': print >> sys.stderr, 'Not running %s in mode=%s' % (arguments, mode) for output in outputs: with open(output, 'w'): # Create an empty file to ensure that we don't rerun this # command unnecessarily. 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())