diff options
author | iannucci@chromium.org <iannucci@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-11-15 02:53:03 +0000 |
---|---|---|
committer | iannucci@chromium.org <iannucci@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-11-15 02:53:03 +0000 |
commit | c45227bdb84d17f7e9bfa325bd3ab27f253249bf (patch) | |
tree | 5927ee8f15920c9399dc62723c528578a951b903 /build | |
parent | 3b821c6b842d80cad47557d8758e65fc0a43e2ad (diff) | |
download | chromium_src-c45227bdb84d17f7e9bfa325bd3ab27f253249bf.zip chromium_src-c45227bdb84d17f7e9bfa325bd3ab27f253249bf.tar.gz chromium_src-c45227bdb84d17f7e9bfa325bd3ab27f253249bf.tar.bz2 |
Only show landmines output if the environment says so.
R=maruel@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/11369238
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@167834 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'build')
-rwxr-xr-x | build/landmines.py | 81 |
1 files changed, 49 insertions, 32 deletions
diff --git a/build/landmines.py b/build/landmines.py index 321c596..5ed69ca 100755 --- a/build/landmines.py +++ b/build/landmines.py @@ -20,6 +20,8 @@ build is clobbered. import difflib import functools import gyp_helper +import logging +import optparse import os import shlex import sys @@ -36,7 +38,8 @@ def memoize(default=None): if not val: ret = func() val.append(ret if ret is not None else default) - print '%s -> %r' % (func.__name__, val[0]) + if logging.getLogger().isEnabledFor(logging.INFO): + print '%s -> %r' % (func.__name__, val[0]) return val[0] return inner return memoizer @@ -167,44 +170,58 @@ def get_target_build_dir(build_tool, target, is_iphone=False): return os.path.abspath(ret) -def main(argv): - if len(argv) > 1: - print('Unknown arguments %s' % argv[1:]) - return 1 +def set_up_landmines(target): + """Does the work of setting, planting, and triggering landmines.""" + out_dir = get_target_build_dir(builder(), target, platform() == 'ios') - gyp_helper.apply_chromium_gyp_env() + landmines_path = os.path.join(out_dir, '.landmines') + if not os.path.exists(out_dir): + os.makedirs(out_dir) - for target in ('Debug', 'Release'): - out_dir = get_target_build_dir(builder(), target, - platform() == 'ios') + new_landmines = get_landmines(target) - landmines_path = os.path.join(out_dir, '.landmines') - if not os.path.exists(out_dir): - os.makedirs(out_dir) + if not os.path.exists(landmines_path): + with open(landmines_path, 'w') as f: + f.writelines(new_landmines) + else: + triggered = os.path.join(out_dir, '.landmines_triggered') + with open(landmines_path, 'r') as f: + old_landmines = f.readlines() + if old_landmines != new_landmines: + old_date = time.ctime(os.stat(landmines_path).st_ctime) + diff = difflib.unified_diff(old_landmines, new_landmines, + fromfile='old_landmines', tofile='new_landmines', + fromfiledate=old_date, tofiledate=time.ctime(), n=0) + + with open(triggered, 'w') as f: + f.writelines(diff) + elif os.path.exists(triggered): + # Remove false triggered landmines. + os.remove(triggered) + + +def main(): + parser = optparse.OptionParser() + parser.add_option('-v', '--verbose', action='store_true', + default=('LANDMINES_VERBOSE' in os.environ), + help=('Emit some extra debugging information (default off). This option ' + 'is also enabled by the presence of a LANDMINES_VERBOSE environment ' + 'variable.')) + options, args = parser.parse_args() + + if args: + parser.error('Unknown arguments %s' % args) + + logging.basicConfig( + level=logging.DEBUG if options.verbose else logging.ERROR) - new_landmines = get_landmines(target) + gyp_helper.apply_chromium_gyp_env() - if not os.path.exists(landmines_path): - with open(landmines_path, 'w') as f: - f.writelines(new_landmines) - else: - triggered = os.path.join(out_dir, '.landmines_triggered') - with open(landmines_path, 'r') as f: - old_landmines = f.readlines() - if old_landmines != new_landmines: - old_date = time.ctime(os.stat(landmines_path).st_ctime) - diff = difflib.unified_diff(old_landmines, new_landmines, - fromfile='old_landmines', tofile='new_landmines', - fromfiledate=old_date, tofiledate=time.ctime(), n=0) - - with open(triggered, 'w') as f: - f.writelines(diff) - elif os.path.exists(triggered): - # Remove false triggered landmines. - os.remove(triggered) + for target in ('Debug', 'Release'): + set_up_landmines(target) return 0 if __name__ == '__main__': - sys.exit(main(sys.argv)) + sys.exit(main()) |