[libcamera-devel] [PATCH 6/8] utils: checkstyle.py: Move diff parsing to Commit class

Laurent Pinchart laurent.pinchart at ideasonboard.com
Thu Dec 24 13:28:53 CET 2020


To avoid duplicating diff parsing in commit checkers, move it to the
Commit class.

Signed-off-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
---
 utils/checkstyle.py | 13 +++++++------
 1 file changed, 7 insertions(+), 6 deletions(-)

diff --git a/utils/checkstyle.py b/utils/checkstyle.py
index 07e896d9819f..9c2a1837aa11 100755
--- a/utils/checkstyle.py
+++ b/utils/checkstyle.py
@@ -236,9 +236,10 @@ class Commit:
         return self.__title
 
     def get_diff(self, top_level, filename):
-        return subprocess.run(['git', 'diff', '%s~..%s' % (self.commit, self.commit),
+        diff = subprocess.run(['git', 'diff', '%s~..%s' % (self.commit, self.commit),
                                '--', '%s/%s' % (top_level, filename)],
                               stdout=subprocess.PIPE).stdout.decode('utf-8')
+        return parse_diff(diff.splitlines(True))
 
     def get_file(self, filename):
         return subprocess.run(['git', 'show', '%s:%s' % (self.commit, filename)],
@@ -256,9 +257,10 @@ class StagedChanges(Commit):
         self.__files = [CommitFile(f) for f in ret.splitlines()]
 
     def get_diff(self, top_level, filename):
-        return subprocess.run(['git', 'diff', '--staged', '--',
+        diff = subprocess.run(['git', 'diff', '--staged', '--',
                                '%s/%s' % (top_level, filename)],
                               stdout=subprocess.PIPE).stdout.decode('utf-8')
+        return parse_diff(diff.splitlines(True))
 
 
 class Amendment(StagedChanges):
@@ -276,9 +278,10 @@ class Amendment(StagedChanges):
         self.__files = [CommitFile(f) for f in ret.splitlines()]
 
     def get_diff(self, top_level, filename):
-        return subprocess.run(['git', 'diff', '--staged', 'HEAD~', '--',
+        diff = subprocess.run(['git', 'diff', '--staged', 'HEAD~', '--',
                                '%s/%s' % (top_level, filename)],
                               stdout=subprocess.PIPE).stdout.decode('utf-8')
+        return parse_diff(diff.splitlines(True))
 
 
 # ------------------------------------------------------------------------------
@@ -657,9 +660,7 @@ class StripTrailingSpaceFormatter(Formatter):
 
 def check_file(top_level, commit, filename):
     # Extract the line numbers touched by the commit.
-    diff = commit.get_diff(top_level, filename)
-    diff = diff.splitlines(True)
-    commit_diff = parse_diff(diff)
+    commit_diff = commit.get_diff(top_level, filename)
 
     lines = []
     for hunk in commit_diff:
-- 
Regards,

Laurent Pinchart



More information about the libcamera-devel mailing list