[PATCH] scripts: use ':Original:' tag to locate the origin file

From: Cheng Ziqiu
Date: Fri Sep 13 2024 - 04:17:54 EST


Simply substitute path may cause file finding failed
if we have a different dir map for translation. The
':Original:' tag could be used to locate the origin
file if both the tag and file exist.

Signed-off-by: Cheng Ziqiu <chengziqiu@xxxxxxxxxxx>
---
scripts/checktransupdate.py | 13 +++++++++++++
1 file changed, 13 insertions(+)

diff --git a/scripts/checktransupdate.py b/scripts/checktransupdate.py
index 578c3fecfdfd..f28176691b03 100755
--- a/scripts/checktransupdate.py
+++ b/scripts/checktransupdate.py
@@ -25,6 +25,7 @@ commit 42fb9cfd5b18 ("Documentation: dev-tools: Add link to RV docs")

import os
import time
+import re
import logging
from argparse import ArgumentParser, ArgumentTypeError, BooleanOptionalAction
from datetime import datetime
@@ -32,6 +33,18 @@ from datetime import datetime

def get_origin_path(file_path):
"""Get the origin path from the translation path"""
+ with open(file_path, "r") as f:
+ content = f.read()
+ # find the origin path in the content
+ match = re.search(r":Original:\s*(?::ref:`|:doc:`)?([^\s`]+)", content)
+ if match:
+ f = match.group(1)
+ if os.path.exists(f):
+ logging.debug("Origin tag found: %s", f)
+ return f
+ else:
+ logging.warning("Origin tag found but file not exists: %s", f)
+
paths = file_path.split("/")
tidx = paths.index("translations")
opaths = paths[:tidx]
--
2.34.1