#!/usr/bin/env python # Copyright 2013 The Flutter 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 os import subprocess import utils def patch_and_filter(dest_dir, relative_patches_dir): os.chdir(dest_dir) utils.filter_file("build/landmines.py", lambda line: not "gyp_environment" in line) utils.commit("filter gyp_environment out of build/landmines.py") patch(dest_dir, relative_patches_dir) def patch(dest_dir, relative_patches_dir=os.curdir): """Applies the *.patch files in |relative_patches_dir|. Args: relative_patches_dir: A directory path relative to the current directory. Defaults to the directory of this file. Raises: subprocess.CalledProcessError if the patch couldn't be applied. """ patches_dir = os.path.join(os.path.dirname(os.path.realpath(__file__)), relative_patches_dir) assert os.path.isdir(patches_dir) os.chdir(dest_dir) for p in utils.find(["*.patch"], patches_dir): print "applying patch %s" % os.path.basename(p) try: utils.system(["git", "apply", p]) utils.commit("applied patch %s" % os.path.basename(p)) except subprocess.CalledProcessError: print "ERROR: patch %s failed to apply" % os.path.basename(p) raise