[libcamera-devel] [PATCH 3/8] utils: checkstyle.py: Move commit handling to a separate section
Laurent Pinchart
laurent.pinchart at ideasonboard.com
Thu Dec 24 13:28:50 CET 2020
To prepare for checkers that operate directly on commits, move the
related classes to a separate section. No functional change is included.
Signed-off-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
---
utils/checkstyle.py | 120 +++++++++++++++++++++++---------------------
1 file changed, 62 insertions(+), 58 deletions(-)
diff --git a/utils/checkstyle.py b/utils/checkstyle.py
index 76267d5ea764..4ba65e5a4ff1 100755
--- a/utils/checkstyle.py
+++ b/utils/checkstyle.py
@@ -190,6 +190,68 @@ def parse_diff(diff):
return hunks
+# ------------------------------------------------------------------------------
+# Commit, Staged Changes & Amendments
+#
+
+class Commit:
+ def __init__(self, commit):
+ self.commit = commit
+
+ def get_info(self):
+ # Get the commit title and list of files.
+ ret = subprocess.run(['git', 'show', '--pretty=oneline', '--name-only',
+ self.commit],
+ stdout=subprocess.PIPE).stdout.decode('utf-8')
+ files = ret.splitlines()
+ # Returning title and files list as a tuple
+ return files[0], files[1:]
+
+ def get_diff(self, top_level, filename):
+ return subprocess.run(['git', 'diff', '%s~..%s' % (self.commit, self.commit),
+ '--', '%s/%s' % (top_level, filename)],
+ stdout=subprocess.PIPE).stdout.decode('utf-8')
+
+ def get_file(self, filename):
+ return subprocess.run(['git', 'show', '%s:%s' % (self.commit, filename)],
+ stdout=subprocess.PIPE).stdout.decode('utf-8')
+
+
+class StagedChanges(Commit):
+ def __init__(self):
+ Commit.__init__(self, '')
+
+ def get_info(self):
+ ret = subprocess.run(['git', 'diff', '--staged', '--name-only'],
+ stdout=subprocess.PIPE).stdout.decode('utf-8')
+ return "Staged changes", ret.splitlines()
+
+ def get_diff(self, top_level, filename):
+ return subprocess.run(['git', 'diff', '--staged', '--',
+ '%s/%s' % (top_level, filename)],
+ stdout=subprocess.PIPE).stdout.decode('utf-8')
+
+
+class Amendment(StagedChanges):
+ def __init__(self):
+ StagedChanges.__init__(self)
+
+ def get_info(self):
+ # Create a title using HEAD commit
+ ret = subprocess.run(['git', 'show', '--pretty=oneline', '--no-patch'],
+ stdout=subprocess.PIPE).stdout.decode('utf-8')
+ title = 'Amendment of ' + ret.strip()
+ # Extract the list of modified files
+ ret = subprocess.run(['git', 'diff', '--staged', '--name-only', 'HEAD~'],
+ stdout=subprocess.PIPE).stdout.decode('utf-8')
+ return title, ret.splitlines()
+
+ def get_diff(self, top_level, filename):
+ return subprocess.run(['git', 'diff', '--staged', 'HEAD~', '--',
+ '%s/%s' % (top_level, filename)],
+ stdout=subprocess.PIPE).stdout.decode('utf-8')
+
+
# ------------------------------------------------------------------------------
# Helpers
#
@@ -564,64 +626,6 @@ class StripTrailingSpaceFormatter(Formatter):
# Style checking
#
-class Commit:
- def __init__(self, commit):
- self.commit = commit
-
- def get_info(self):
- # Get the commit title and list of files.
- ret = subprocess.run(['git', 'show', '--pretty=oneline', '--name-only',
- self.commit],
- stdout=subprocess.PIPE).stdout.decode('utf-8')
- files = ret.splitlines()
- # Returning title and files list as a tuple
- return files[0], files[1:]
-
- def get_diff(self, top_level, filename):
- return subprocess.run(['git', 'diff', '%s~..%s' % (self.commit, self.commit),
- '--', '%s/%s' % (top_level, filename)],
- stdout=subprocess.PIPE).stdout.decode('utf-8')
-
- def get_file(self, filename):
- return subprocess.run(['git', 'show', '%s:%s' % (self.commit, filename)],
- stdout=subprocess.PIPE).stdout.decode('utf-8')
-
-
-class StagedChanges(Commit):
- def __init__(self):
- Commit.__init__(self, '')
-
- def get_info(self):
- ret = subprocess.run(['git', 'diff', '--staged', '--name-only'],
- stdout=subprocess.PIPE).stdout.decode('utf-8')
- return "Staged changes", ret.splitlines()
-
- def get_diff(self, top_level, filename):
- return subprocess.run(['git', 'diff', '--staged', '--',
- '%s/%s' % (top_level, filename)],
- stdout=subprocess.PIPE).stdout.decode('utf-8')
-
-
-class Amendment(StagedChanges):
- def __init__(self):
- StagedChanges.__init__(self)
-
- def get_info(self):
- # Create a title using HEAD commit
- ret = subprocess.run(['git', 'show', '--pretty=oneline', '--no-patch'],
- stdout=subprocess.PIPE).stdout.decode('utf-8')
- title = 'Amendment of ' + ret.strip()
- # Extract the list of modified files
- ret = subprocess.run(['git', 'diff', '--staged', '--name-only', 'HEAD~'],
- stdout=subprocess.PIPE).stdout.decode('utf-8')
- return title, ret.splitlines()
-
- def get_diff(self, top_level, filename):
- return subprocess.run(['git', 'diff', '--staged', 'HEAD~', '--',
- '%s/%s' % (top_level, filename)],
- stdout=subprocess.PIPE).stdout.decode('utf-8')
-
-
def check_file(top_level, commit, filename):
# Extract the line numbers touched by the commit.
diff = commit.get_diff(top_level, filename)
--
Regards,
Laurent Pinchart
More information about the libcamera-devel
mailing list