[PATCH] scripts/checktransupdate.py: add support for scanning directory

Haoyang LIU posted 1 patch 1 month, 3 weeks ago
There is a newer version of this series
scripts/checktransupdate.py | 26 +++++++++++++++++++++++++-
1 file changed, 25 insertions(+), 1 deletion(-)
[PATCH] scripts/checktransupdate.py: add support for scanning directory
Posted by Haoyang LIU 1 month, 3 weeks ago
Origin script can only accept a file as parameter, this commit enables
it to scan a directory.

Usage example:
./scripts/checktransupdate.py Documentation/translations/zh_CN/dev-tools

Signed-off-by: Haoyang LIU <tttturtleruss@gmail.com>
---
 scripts/checktransupdate.py | 26 +++++++++++++++++++++++++-
 1 file changed, 25 insertions(+), 1 deletion(-)

diff --git a/scripts/checktransupdate.py b/scripts/checktransupdate.py
index e39529e46c3d..0d197d036650 100755
--- a/scripts/checktransupdate.py
+++ b/scripts/checktransupdate.py
@@ -13,6 +13,8 @@ The usage is as follows:
 This will print all the files that need to be updated or translated in the zh_CN locale.
 - ./scripts/checktransupdate.py Documentation/translations/zh_CN/dev-tools/testing-overview.rst
 This will only print the status of the specified file.
+- ./scripts/checktransupdate.py Documentation/translations/zh_CN/dev-tools
+This will print all the files in the specified folder and its subfolders.
 
 The output is something like:
 Documentation/dev-tools/kfence.rst
@@ -21,6 +23,17 @@ No translation in the locale of zh_CN
 Documentation/translations/zh_CN/dev-tools/testing-overview.rst
 commit 42fb9cfd5b18 ("Documentation: dev-tools: Add link to RV docs")
 1 commits needs resolving in total
+
+Documentation/translations/zh_CN/dev-tools/index.rst
+commit d5af79c05e93 ("Documentation: move dev-tools debugging files to process/debugging/")
+commit d5dc95836147 ("kbuild: Add Propeller configuration for kernel build")
+commit 315ad8780a12 ("kbuild: Add AutoFDO support for Clang build")
+3 commits needs resolving in total
+
+Documentation/translations/zh_CN/dev-tools/kcsan.rst
+commit b37221cc861d ("Documentation: kcsan: fix "Plain Accesses and Data Races" URL in kcsan.rst")
+commit 72ffee678f6f ("docs: update dev-tools/kcsan.rst url about KTSAN")
+2 commits needs resolving in total
 """
 
 import os
@@ -131,7 +144,7 @@ def check_per_file(file_path):
     opath = get_origin_path(file_path)
 
     if not os.path.isfile(opath):
-        logging.error("Cannot find the origin path for {file_path}")
+        logging.error(f"Cannot find the origin path for {file_path}")
         return
 
     o_from_head = get_latest_commit_from(opath, "HEAD")
@@ -293,6 +306,17 @@ def main():
                 if args.print_missing_translations:
                     logging.info(os.path.relpath(os.path.abspath(file), linux_path))
                     logging.info("No translation in the locale of %s\n", args.locale)
+    else:
+        # check if the files are directories or files
+        new_files = []
+        for file in files:
+            if os.path.isfile(file):
+                new_files.append(file)
+            elif os.path.isdir(file):
+                # for directories, list all files in the directory and its subfolders
+                new_files.extend(list_files_with_excluding_folders(
+                    file, [], "rst"))
+        files = new_files
 
     files = list(map(lambda x: os.path.relpath(os.path.abspath(x), linux_path), files))
 
-- 
2.50.1
Re: [PATCH] scripts/checktransupdate.py: add support for scanning directory
Posted by Dan Carpenter 1 month, 3 weeks ago
On Mon, Aug 11, 2025 at 12:17:30AM +0800, Haoyang LIU wrote:
>  
>  import os
> @@ -131,7 +144,7 @@ def check_per_file(file_path):
>      opath = get_origin_path(file_path)
>  
>      if not os.path.isfile(opath):
> -        logging.error("Cannot find the origin path for {file_path}")
> +        logging.error(f"Cannot find the origin path for {file_path}")

Send this as a separate patch with a Fixes tag.
Fixes: 63e96ce050e5 ("scripts: fix all issues reported by pylint")

Ideally, pylint should be modified to complain about this or something...
I have a script for kernel patches which checks these kinds of mechanical
changes and someone could make a similar script which checks pylint
changes.  https://github.com/error27/rename_rev

regards,
dan carpenter
Re: [PATCH] scripts/checktransupdate.py: add support for scanning directory
Posted by Dongliang Mu 1 month, 3 weeks ago
On 8/11/25 3:18 PM, Dan Carpenter wrote:
> On Mon, Aug 11, 2025 at 12:17:30AM +0800, Haoyang LIU wrote:
>>   
>>   import os
>> @@ -131,7 +144,7 @@ def check_per_file(file_path):
>>       opath = get_origin_path(file_path)
>>   
>>       if not os.path.isfile(opath):
>> -        logging.error("Cannot find the origin path for {file_path}")
>> +        logging.error(f"Cannot find the origin path for {file_path}")
> Send this as a separate patch with a Fixes tag.
> Fixes: 63e96ce050e5 ("scripts: fix all issues reported by pylint")
>
> Ideally, pylint should be modified to complain about this or something...
> I have a script for kernel patches which checks these kinds of mechanical
> changes and someone could make a similar script which checks pylint
> changes.  https://github.com/error27/rename_rev

Yes, this seems really wired. We have a project - Linux Kernel Patch 
Statistic among Universities[1]. In one PR[2], Haoyang also found a 
quote string issue.

Interestingly, this PR is trying to fix issues raised by pylint.


[1] https://github.com/hust-open-atom-club/linux-edu-rank

[2] https://github.com/hust-open-atom-club/linux-edu-rank/pull/45


>
> regards,
> dan carpenter
>
Re: [PATCH] scripts/checktransupdate.py: add support for scanning directory
Posted by Dongliang Mu 1 month, 3 weeks ago
+to Yanteng, Dongliang, Alex and Jon

+cc linux-doc mailing list

On 8/11/25 12:17 AM, Haoyang LIU wrote:
> Origin script can only accept a file as parameter, this commit enables
> it to scan a directory.
>
> Usage example:
> ./scripts/checktransupdate.py Documentation/translations/zh_CN/dev-tools
>
> Signed-off-by: Haoyang LIU <tttturtleruss@gmail.com>
> ---
>   scripts/checktransupdate.py | 26 +++++++++++++++++++++++++-
>   1 file changed, 25 insertions(+), 1 deletion(-)
>
> diff --git a/scripts/checktransupdate.py b/scripts/checktransupdate.py
> index e39529e46c3d..0d197d036650 100755
> --- a/scripts/checktransupdate.py
> +++ b/scripts/checktransupdate.py
> @@ -13,6 +13,8 @@ The usage is as follows:
>   This will print all the files that need to be updated or translated in the zh_CN locale.
>   - ./scripts/checktransupdate.py Documentation/translations/zh_CN/dev-tools/testing-overview.rst
>   This will only print the status of the specified file.
> +- ./scripts/checktransupdate.py Documentation/translations/zh_CN/dev-tools
> +This will print all the files in the specified folder and its subfolders.
>   
>   The output is something like:
>   Documentation/dev-tools/kfence.rst
> @@ -21,6 +23,17 @@ No translation in the locale of zh_CN
>   Documentation/translations/zh_CN/dev-tools/testing-overview.rst
>   commit 42fb9cfd5b18 ("Documentation: dev-tools: Add link to RV docs")
>   1 commits needs resolving in total
> +
> +Documentation/translations/zh_CN/dev-tools/index.rst
> +commit d5af79c05e93 ("Documentation: move dev-tools debugging files to process/debugging/")
> +commit d5dc95836147 ("kbuild: Add Propeller configuration for kernel build")
> +commit 315ad8780a12 ("kbuild: Add AutoFDO support for Clang build")
> +3 commits needs resolving in total
> +
> +Documentation/translations/zh_CN/dev-tools/kcsan.rst
> +commit b37221cc861d ("Documentation: kcsan: fix "Plain Accesses and Data Races" URL in kcsan.rst")
> +commit 72ffee678f6f ("docs: update dev-tools/kcsan.rst url about KTSAN")
> +2 commits needs resolving in total
>   """
>   
>   import os
> @@ -131,7 +144,7 @@ def check_per_file(file_path):
>       opath = get_origin_path(file_path)
>   
>       if not os.path.isfile(opath):
> -        logging.error("Cannot find the origin path for {file_path}")
> +        logging.error(f"Cannot find the origin path for {file_path}")
>           return
>   
>       o_from_head = get_latest_commit_from(opath, "HEAD")
> @@ -293,6 +306,17 @@ def main():
>                   if args.print_missing_translations:
>                       logging.info(os.path.relpath(os.path.abspath(file), linux_path))
>                       logging.info("No translation in the locale of %s\n", args.locale)
> +    else:
> +        # check if the files are directories or files
> +        new_files = []
> +        for file in files:
> +            if os.path.isfile(file):
> +                new_files.append(file)
> +            elif os.path.isdir(file):
> +                # for directories, list all files in the directory and its subfolders
> +                new_files.extend(list_files_with_excluding_folders(
> +                    file, [], "rst"))
> +        files = new_files
>   
>       files = list(map(lambda x: os.path.relpath(os.path.abspath(x), linux_path), files))
>