#!/usr/bin/env python3 import argparse import json import os import warnings from lib import git from lib.patches import patch_from_dir THREEWAY = "ELECTRON_USE_THREE_WAY_MERGE_FOR_PATCHES" in os.environ def apply_patches(target): repo = target.get('repo') if not os.path.exists(repo): warnings.warn(f'repo not found: {repo}') return patch_dir = target.get('patch_dir') git.import_patches( committer_email="scripts@electron", committer_name="Electron Scripts", patch_data=patch_from_dir(patch_dir), repo=repo, threeway=THREEWAY, ) def apply_config(config): for target in config: apply_patches(target) def parse_args(): parser = argparse.ArgumentParser(description='Apply Electron patches') parser.add_argument('config', nargs='+', type=argparse.FileType('r'), help='patches\' config(s) in the JSON format') return parser.parse_args() def main(): for config_json in parse_args().config: apply_config(json.load(config_json)) if __name__ == '__main__': main()