File tree Expand file tree Collapse file tree 1 file changed +41
-0
lines changed Expand file tree Collapse file tree 1 file changed +41
-0
lines changed Original file line number Diff line number Diff line change
1
+ import os
2
+ from pathlib import Path
3
+ import re
4
+
5
+ absolute_path = Path (__file__ ).resolve ().parents [2 ]
6
+ pattern_translated_strings = r'Translated:\s+(\d+)'
7
+
8
+
9
+ def run_git_command (command ):
10
+ try :
11
+ return os .popen (command ).read ()
12
+ except Exception as e :
13
+ print (f"Error executing Git command: { e } " )
14
+ return ""
15
+
16
+
17
+ def get_translated_commit_strings (commit_hash ):
18
+ try :
19
+ changed_files = run_git_command (f"git diff-tree --no-commit-id --name-only { commit_hash } -r" ).split ("\n " )
20
+ changed_files .remove ("" )
21
+ changed_count = 0
22
+ for file in changed_files :
23
+ file_path = absolute_path / file
24
+ output = os .popen (f"pocount { file_path } " ).read ()
25
+ strings_match = re .search (pattern_translated_strings , output )
26
+ matched_strings = int (strings_match .group (1 )) if strings_match else 0
27
+ changed_count += matched_strings
28
+ return changed_count
29
+ except Exception as e :
30
+ print (f"Error getting translated strings count: { e } " )
31
+ return 0
32
+
33
+
34
+ def get_difference_between_translated_commits_strings (commit_hash1 , commit_hash2 ):
35
+ try :
36
+ commit_hash1_count = get_translated_commit_strings (commit_hash1 )
37
+ commit_hash2_count = get_translated_commit_strings (commit_hash2 )
38
+ return abs (commit_hash1_count - commit_hash2_count )
39
+ except Exception as e :
40
+ print (f"Error calculating the difference between translated strings counts: { e } " )
41
+ return 0
You can’t perform that action at this time.
0 commit comments