]> Git Repo - buildroot-mgba.git/blobdiff - utils/get-developers
package/x11r7/xlib_libXrender: bump version to 0.9.11
[buildroot-mgba.git] / utils / get-developers
index 40ed08ffe1e7db5d88af839402772c555634f90c..9ab5c4503f1f0f6b8931d56cce3c23f6f0da35ab 100755 (executable)
@@ -1,7 +1,9 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 
 import argparse
 import getdeveloperlib
+import sys
+
 
 def parse_args():
     parser = argparse.ArgumentParser()
@@ -11,14 +13,20 @@ def parse_args():
                         help='find developers in charge of this architecture')
     parser.add_argument('-p', dest='package', action='store',
                         help='find developers in charge of this package')
+    parser.add_argument('-f', dest='files', nargs='*',
+                        help='find developers in charge of these files')
     parser.add_argument('-c', dest='check', action='store_const',
                         const=True, help='list files not handled by any developer')
+    parser.add_argument('-e', dest='email', action='store_const',
+                        const=True, help='only list affected developer email addresses')
+    parser.add_argument('-v', dest='validate', action='store_const',
+                        const=True, help='validate syntax of DEVELOPERS file')
+    parser.add_argument('-d', dest='filename', action='store', default=None,
+                        help='override the default DEVELOPERS file (for debug)')
     return parser.parse_args()
 
+
 def __main__():
-    devs = getdeveloperlib.parse_developers()
-    if devs is None:
-        sys.exit(1)
     args = parse_args()
 
     # Check that only one action is given
@@ -27,8 +35,12 @@ def __main__():
         action += 1
     if args.package is not None:
         action += 1
+    if args.files:
+        action += 1
     if args.check:
         action += 1
+    if args.validate:
+        action += 1
     if len(args.patches) != 0:
         action += 1
     if action > 1:
@@ -38,6 +50,16 @@ def __main__():
         print("No action specified")
         return
 
+    devs = getdeveloperlib.parse_developers(args.filename)
+    if devs is None:
+        sys.exit(1)
+
+    # Validation is done by parse_developers() above and we error out
+    # if the validation didn't work, so if we reach here, it means
+    # validation passed, so we can simply bail out in success.
+    if args.validate:
+        return
+
     # Handle the check action
     if args.check:
         files = getdeveloperlib.check_developers(devs)
@@ -58,6 +80,14 @@ def __main__():
                 print(dev.name)
         return
 
+    # Handle the files action
+    if args.files is not None:
+        for dev in devs:
+            for f in args.files:
+                if dev.hasfile(f):
+                    print(dev.name)
+                    break
+
     # Handle the patches action
     if len(args.patches) != 0:
         (files, infras) = getdeveloperlib.analyze_patches(args.patches)
@@ -72,12 +102,16 @@ def __main__():
                 if i in dev.infras:
                     matching_devs.add(dev.name)
 
-        result = "--to [email protected]"
-        for dev in matching_devs:
-            result += " --cc \"%s\"" % dev
+        if args.email:
+            for dev in matching_devs:
+                print(dev)
+        else:
+            result = "--to [email protected]"
+            for dev in matching_devs:
+                result += " --cc \"%s\"" % dev
 
-        if result != "":
-            print("git send-email %s" % result)
+            if result != "":
+                print("git send-email %s" % result)
 
-__main__()
 
+__main__()
This page took 0.028491 seconds and 4 git commands to generate.