[libcamera-devel] [PATCH v2 3/6] checkstyle: Introduce a Commit class
Niklas Söderlund
niklas.soderlund at ragnatech.se
Fri Jan 17 22:51:43 CET 2020
Hi Nicolas,
Thanks for your work.
On 2020-01-17 14:17:30 -0500, Nicolas Dufresne wrote:
> From: Nicolas Dufresne <nicolas.dufresne at collabora.com>
>
> This introduce a Commit class used in the final revlist list. All the
> git command are moved into that class. This class will be used to
> introduce new type of commit (index and amendment) needed to implement
> pre-commit hook support.
>
> Signed-off-by: Nicolas Dufresne <nicolas.dufresne at collabora.com>
Reviewed-by: Niklas Söderlund <niklas.soderlund at ragnatech.se>
> ---
> utils/checkstyle.py | 43 +++++++++++++++++++++++++++++--------------
> 1 file changed, 29 insertions(+), 14 deletions(-)
>
> diff --git a/utils/checkstyle.py b/utils/checkstyle.py
> index e7375b3..fb865c8 100644
> --- a/utils/checkstyle.py
> +++ b/utils/checkstyle.py
> @@ -458,12 +458,34 @@ class StripTrailingSpaceFormatter(Formatter):
> # Style checking
> #
>
> +class Commit:
> + commit = None
> +
> + def __init__(self, commit):
> + self.commit = commit
> +
> + def get_info(self, top_level):
> + # 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()
> + 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')
> +
> +
> def check_file(top_level, commit, filename):
> # Extract the line numbers touched by the commit.
> - diff = subprocess.run(['git', 'diff', '%s~..%s' % (commit, commit), '--',
> - '%s/%s' % (top_level, filename)],
> - stdout=subprocess.PIPE).stdout
> - diff = diff.decode('utf-8').splitlines(True)
> + diff = commit.get_diff(top_level, filename)
> + diff = diff.splitlines(True)
> commit_diff = parse_diff(diff)
>
> lines = []
> @@ -476,9 +498,7 @@ def check_file(top_level, commit, filename):
>
> # Format the file after the commit with all formatters and compute the diff
> # between the unformatted and formatted contents.
> - after = subprocess.run(['git', 'show', '%s:%s' % (commit, filename)],
> - stdout=subprocess.PIPE).stdout
> - after = after.decode('utf-8')
> + after = commit.get_file(filename)
>
> formatted = after
> for formatter in Formatter.formatters(filename):
> @@ -522,12 +542,7 @@ def check_file(top_level, commit, filename):
>
>
> def check_style(top_level, commit):
> - # Get the commit title and list of files.
> - ret = subprocess.run(['git', 'show', '--pretty=oneline','--name-only', commit],
> - stdout=subprocess.PIPE)
> - files = ret.stdout.decode('utf-8').splitlines()
> - title = files[0]
> - files = files[1:]
> + title, files = commit.get_info(top_level)
>
> separator = '-' * len(title)
> print(separator)
> @@ -576,7 +591,7 @@ def extract_revlist(revs):
> revlist = ret.stdout.decode('utf-8').splitlines()
> revlist.reverse()
>
> - return revlist
> + return [Commit(x) for x in revlist]
>
>
> def git_top_level():
> --
> 2.24.1
>
> _______________________________________________
> libcamera-devel mailing list
> libcamera-devel at lists.libcamera.org
> https://lists.libcamera.org/listinfo/libcamera-devel
--
Regards,
Niklas Söderlund
More information about the libcamera-devel
mailing list