Browse Source

build: store the patches config in a json file (#15395)

Alexey Kuzmin 6 years ago
parent
commit
32ea2b67f0
3 changed files with 27 additions and 19 deletions
  1. 1 0
      DEPS
  2. 11 0
      patches/common/config.json
  3. 15 19
      script/apply_all_patches.py

+ 1 - 0
DEPS

@@ -89,6 +89,7 @@ hooks = [
     'action': [
       'python',
       'src/electron/script/apply_all_patches.py',
+      'src/electron/patches/common/config.json',
     ],
   },
   {

+ 11 - 0
patches/common/config.json

@@ -0,0 +1,11 @@
+{
+  "src/electron/patches/common/chromium": "src",
+
+  "src/electron/patches/common/boringssl": "src/third_party/boringssl/src",
+
+  "src/electron/patches/common/ffmpeg": "src/third_party/ffmpeg",
+
+  "src/electron/patches/common/skia": "src/third_party/skia",
+
+  "src/electron/patches/common/v8":  "src/v8"
+}

+ 15 - 19
script/apply_all_patches.py

@@ -1,35 +1,31 @@
 #!/usr/bin/env python
 
+import argparse
+import json
+import sys
+
 from lib import git
 from lib.patches import patch_from_dir
 
 
-patch_dirs = {
-  'src/electron/patches/common/chromium':
-    'src',
-
-  'src/electron/patches/common/boringssl':
-    'src/third_party/boringssl/src',
-
-  'src/electron/patches/common/ffmpeg':
-    'src/third_party/ffmpeg',
-
-  'src/electron/patches/common/skia':
-    'src/third_party/skia',
-
-  'src/electron/patches/common/v8':
-    'src/v8',
-}
-
-
 def apply_patches(dirs):
   for patch_dir, repo in dirs.iteritems():
     git.am(repo=repo, patch_data=patch_from_dir(patch_dir),
       committer_name="Electron Scripts", committer_email="scripts@electron")
 
 
+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():
-  apply_patches(patch_dirs)
+  configs = parse_args().config
+  for config_json in configs:
+    apply_patches(json.load(config_json))
 
 
 if __name__ == '__main__':