diff mbox series

[2/2] prep: --check run dt_binding_check when patch include yaml file

Message ID 20240319045332.2304950-2-Frank.Li@nxp.com (mailing list archive)
State New
Headers show
Series [1/2] prep: add --check option to run necessary patch check | expand

Commit Message

Frank Li March 19, 2024, 4:53 a.m. UTC
When patch include device binding yaml file, run dt_binding_check

Signed-off-by: Frank Li <Frank.Li@nxp.com>
---
 b4/ez.py | 26 ++++++++++++++++++++++++--
 1 file changed, 24 insertions(+), 2 deletions(-)
diff mbox series

Patch

diff --git a/b4/ez.py b/b4/ez.py
index bcf6363..c3bffa0 100644
--- a/b4/ez.py
+++ b/b4/ez.py
@@ -2190,8 +2190,30 @@  def prep_check_patch() -> None:
     cmdargs.append(getcheckpatch)
     cmdargs.append('-g')
     cmdargs.append(stc + '..' + endc)
-    ret = subprocess.run(cmdargs)
-    if ret.returncode > 0:
+    dtret = ret = subprocess.run(cmdargs)
+
+    gitargs = ['diff', '--stat', '--name-only', f'{stc}..{endc}']
+    ecode, diffstat = b4.git_run_command(None, gitargs)
+
+    for file in diffstat.split("\n"):
+         if file.startswith('Documentation/devicetree/bindings/'):
+             directory, filename = os.path.split(file)
+             if filename.endswith('.yaml'):
+                 touchargs = list()
+                 touchargs.append('touch')
+                 touchargs.append(file)
+                 subprocess.run(touchargs)
+
+                 logger.info('Run dt_binding_check: ' + filename)
+                 cmdargs = list()
+                 cmdargs.append('make')
+                 cmdargs.append('dt_binding_check')
+                 cmdargs.append('DT_SCHEMA_FILES=' + filename);
+                 dtret = subprocess.run(cmdargs)
+                 if dtret.returncode > 0:
+                     break
+
+    if ret.returncode > 0 or dtret.returncode > 0:
         logger.critical('CRITICAL: Check patch failure')
 
 def cmd_prep(cmdargs: argparse.Namespace) -> None: