Adding run_localization_check.py
It will run the two localization verifications:
- It will tell if the resource files are formatted in the correct way
- It ill tell if any localizable resource in the code is present with the
appropiate attributes in the resource files.
This two verifications already run as part of the presubmit verifications,
I did some refactoring to allow them to be run from an external script.
Change-Id: I340e5dcfdeef7331a757adf27cef94e22302cf10
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/1894913
Reviewed-by: Lorne Mitchell <lomitch@microsoft.com>
Commit-Queue: Vidal Diazleal <vidorteg@microsoft.com>
diff --git a/PRESUBMIT.py b/PRESUBMIT.py
index e5b16b3..b6e8602 100644
--- a/PRESUBMIT.py
+++ b/PRESUBMIT.py
@@ -127,29 +127,30 @@
]
-def _CheckDevtoolsLocalizableResources(input_api, output_api, check_all_files=False): # pylint: disable=invalid-name
- devtools_root = input_api.PresubmitLocalPath()
- devtools_front_end = input_api.os_path.join(devtools_root, 'front_end')
- affected_front_end_files = _getAffectedFiles(input_api, [devtools_front_end], [], ['.js', 'module.json', '.grd', '.grdp'])
- if len(affected_front_end_files) == 0 and check_all_files == False:
- return []
- script_path = input_api.os_path.join(input_api.PresubmitLocalPath(), 'scripts', 'check_localizable_resources.js')
- args = ['--autofix']
- return _checkWithNodeScript(input_api, output_api, script_path, args)
-
-
def _CheckDevtoolsLocalization(input_api, output_api, check_all_files=False): # pylint: disable=invalid-name
devtools_root = input_api.PresubmitLocalPath()
- devtools_front_end = input_api.os_path.join(devtools_root, 'front_end')
- affected_front_end_files = _getAffectedFiles(input_api, [devtools_front_end], ['D'], ['.js', '.grdp'])
- if len(affected_front_end_files) == 0 and check_all_files == False:
- return []
-
- script_path = input_api.os_path.join(input_api.PresubmitLocalPath(), 'scripts', 'check_localizability.js')
+ script_path = input_api.os_path.join(devtools_root, 'scripts', 'test', 'run_localization_check.py')
if check_all_files == True:
- return _checkWithNodeScript(input_api, output_api, script_path, ['-a'])
+ # Scan all files and fix any errors
+ args = ['--autofix', '--a']
else:
- return _checkWithNodeScript(input_api, output_api, script_path, affected_front_end_files)
+ devtools_front_end = input_api.os_path.join(devtools_root, 'front_end')
+ affected_front_end_files = _getAffectedFiles(input_api, [devtools_front_end], ['D'],
+ ['.js', '.grdp', '.grd', 'module.json'])
+
+ if len(affected_front_end_files) == 0:
+ return []
+ # Scan only added or modified files with specific extensions.
+ args = [
+ '--autofix',
+ '--files',
+ ] + affected_front_end_files
+ process = input_api.subprocess.Popen(
+ [input_api.python_executable, script_path] + args, stdout=input_api.subprocess.PIPE, stderr=input_api.subprocess.STDOUT)
+ out, _ = process.communicate()
+ if process.returncode != 0:
+ return [output_api.PresubmitError(out)]
+ return [output_api.PresubmitNotifyResult(out)]
def _CheckDevtoolsStyle(input_api, output_api):
@@ -221,7 +222,6 @@
results.extend(_CheckDevtoolsStyle(input_api, output_api))
results.extend(_CheckOptimizeSVGHashes(input_api, output_api))
results.extend(_CheckCSSViolations(input_api, output_api))
- results.extend(_CheckDevtoolsLocalizableResources(input_api, output_api))
results.extend(_CheckDevtoolsLocalization(input_api, output_api))
results.extend(_CheckChangesAreExclusiveToDirectory(input_api, output_api))
return results
@@ -230,7 +230,6 @@
def CheckChangeOnCommit(input_api, output_api):
results = []
results.extend(_CommonChecks(input_api, output_api))
- results.extend(_CheckDevtoolsLocalizableResources(input_api, output_api, True))
results.extend(_CheckDevtoolsLocalization(input_api, output_api, True))
results.extend(_CheckChangesAreExclusiveToDirectory(input_api, output_api))
results.extend(input_api.canned_checks.CheckChangeHasDescription(input_api, output_api))