Improve support for submodules in code_style.py
This commit improves support for submodules within code_style.py. A new
function get_submodule_hash retrieves the submodule hash at the time of
a commit allowing an appropriate diff to be seen.
Signed-off-by: Harry Ramsey <harry.ramsey@arm.com>
diff --git a/scripts/code_style.py b/scripts/code_style.py
index d3f89d9..e98fb2b 100755
--- a/scripts/code_style.py
+++ b/scripts/code_style.py
@@ -102,8 +102,10 @@
"--name-only", "--pretty=", "--"] + src_files
output = subprocess.check_output(cmd, universal_newlines=True)
committed_changed_files = output.split()
+
# ... the framework submodule
- cmd = ["git", "-C", "framework", "log", since + "..HEAD",
+ framework_since = get_submodule_hash(since, "framework")
+ cmd = ["git", "-C", "framework", "log", framework_since + "..HEAD",
"--name-only", "--pretty=", "--"] + framework_src_files
output = subprocess.check_output(cmd, universal_newlines=True,
env=framework_env)
@@ -135,6 +137,12 @@
is_file_autogenerated(filename))]
return src_files
+def get_submodule_hash(commit: str, submodule: str) -> str:
+ """Get the commit hash of a submodule at a given commit in the Git repository."""
+ cmd = ["git", "ls-tree", commit, submodule]
+ output = subprocess.check_output(cmd, universal_newlines=True)
+ return output.split()[2]
+
def get_uncrustify_version() -> str:
"""
Get the version string from Uncrustify