diff options
author | Laurent Pinchart <laurent.pinchart@ideasonboard.com> | 2024-08-05 20:36:42 +0300 |
---|---|---|
committer | Laurent Pinchart <laurent.pinchart@ideasonboard.com> | 2024-08-07 18:38:44 +0300 |
commit | fd130ef21b7e52d0442ccbb26825dea300a8a70e (patch) | |
tree | 7ec3ce2955b71a7d9de2d23e03897d5bb868d95e /utils/checkstyle.py | |
parent | ff0613a6e5e795b213b5e006e28df751200648a3 (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>
Diffstat (limited to 'utils/checkstyle.py')
-rwxr-xr-x | utils/checkstyle.py | 19 |
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) |