summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLaurent Pinchart <laurent.pinchart@ideasonboard.com>2024-08-05 20:36:42 +0300
committerLaurent Pinchart <laurent.pinchart@ideasonboard.com>2024-08-07 18:38:44 +0300
commitfd130ef21b7e52d0442ccbb26825dea300a8a70e (patch)
tree7ec3ce2955b71a7d9de2d23e03897d5bb868d95e
parentff0613a6e5e795b213b5e006e28df751200648a3 (diff)
utils: checkstyle.py: Add author property to Commit class
Extend the Commit class with an author property, retrieved from the commit. It will be used to extend checkers. While at it, drop the unneeded .strip() call when retrieving the title for amendment commits. The call got carried over from code that initially needed it to strip the new line character, but that need disappeard with usage of .splitlines(). Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Stefan Klug <stefan.klug@ideasonboard.com> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
-rwxr-xr-xutils/checkstyle.py19
1 files changed, 13 insertions, 6 deletions
diff --git a/utils/checkstyle.py b/utils/checkstyle.py
index 7d480bdf..e8451846 100755
--- a/utils/checkstyle.py
+++ b/utils/checkstyle.py
@@ -212,11 +212,12 @@ class CommitFile:
class Commit:
def __init__(self, commit):
self.commit = commit
+ self._author = None
self._trailers = []
self._parse()
def _parse_trailers(self, lines):
- for index in range(1, len(lines)):
+ for index in range(2, len(lines)):
line = lines[index]
if not line:
break
@@ -227,12 +228,13 @@ class Commit:
def _parse(self):
# Get the commit title and list of files.
- ret = subprocess.run(['git', 'show', '--format=%s%n%(trailers:only,unfold)', '--name-status',
- self.commit],
+ ret = subprocess.run(['git', 'show', '--format=%an <%ae>%n%s%n%(trailers:only,unfold)',
+ '--name-status', self.commit],
stdout=subprocess.PIPE).stdout.decode('utf-8')
lines = ret.splitlines()
- self._title = lines[0]
+ self._author = lines[0]
+ self._title = lines[1]
index = self._parse_trailers(lines)
self._files = [CommitFile(f) for f in lines[index:] if f]
@@ -241,6 +243,10 @@ class Commit:
return [f.filename for f in self._files if f.status in filter]
@property
+ def author(self):
+ return self._author
+
+ @property
def title(self):
return self._title
@@ -282,12 +288,13 @@ class Amendment(Commit):
def _parse(self):
# Create a title using HEAD commit and parse the trailers.
- ret = subprocess.run(['git', 'show', '--format=%H %s%n%(trailers:only,unfold)',
+ ret = subprocess.run(['git', 'show', '--format=%an <%ae>%n%H %s%n%(trailers:only,unfold)',
'--no-patch'],
stdout=subprocess.PIPE).stdout.decode('utf-8')
lines = ret.splitlines()
- self._title = 'Amendment of ' + lines[0].strip()
+ self._author = lines[0]
+ self._title = 'Amendment of ' + lines[1]
self._parse_trailers(lines)