Message ID | 20201224122855.22200-8-laurent.pinchart@ideasonboard.com |
---|---|
State | Accepted |
Delegated to: | Laurent Pinchart |
Headers | show |
Series |
|
Related | show |
Hi Laurent, Thanks for your work. On 2020-12-24 14:28:54 +0200, Laurent Pinchart wrote: > Add a new category of checkers that operate on a whole commit. > > Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Niklas Söderlund <niklas.soderlund@ragnatech.se> > --- > utils/checkstyle.py | 42 +++++++++++++++++++++++++++++++++++------- > 1 file changed, 35 insertions(+), 7 deletions(-) > > diff --git a/utils/checkstyle.py b/utils/checkstyle.py > index 9c2a1837aa11..c0a6b7ab06cd 100755 > --- a/utils/checkstyle.py > +++ b/utils/checkstyle.py > @@ -296,6 +296,30 @@ class ClassRegistry(type): > return newclass > > > +# ------------------------------------------------------------------------------ > +# Commit Checkers > +# > + > +class CommitChecker(metaclass=ClassRegistry): > + subclasses = [] > + > + def __init__(self): > + pass > + > + # > + # Class methods > + # > + @classmethod > + def checkers(cls): > + for checker in cls.subclasses: > + yield checker > + > + > +class CommitIssue(object): > + def __init__(self, msg): > + self.msg = msg > + > + > # ------------------------------------------------------------------------------ > # Style Checkers > # > @@ -721,25 +745,29 @@ def check_style(top_level, commit): > print(commit.title) > print(separator) > > + issues = 0 > + > + # Apply the commit checkers first. > + for checker in CommitChecker.checkers(): > + for issue in checker.check(commit, top_level): > + print('%s%s%s' % (Colours.fg(Colours.Yellow), issue.msg, Colours.reset())) > + issues += 1 > + > # Filter out files we have no checker for. > patterns = set() > patterns.update(StyleChecker.all_patterns()) > patterns.update(Formatter.all_patterns()) > files = [f for f in commit.files() if len([p for p in patterns if fnmatch.fnmatch(os.path.basename(f), p)])] > - if len(files) == 0: > - print("Commit doesn't touch source files, skipping") > - return 0 > > - issues = 0 > for f in files: > issues += check_file(top_level, commit, f) > > if issues == 0: > - print("No style issue detected") > + print("No issue detected") > else: > print('---') > - print("%u potential style %s detected, please review" % \ > - (issues, 'issue' if issues == 1 else 'issues')) > + print("%u potential %s detected, please review" % > + (issues, 'issue' if issues == 1 else 'issues')) > > return issues > > -- > Regards, > > Laurent Pinchart > > _______________________________________________ > libcamera-devel mailing list > libcamera-devel@lists.libcamera.org > https://lists.libcamera.org/listinfo/libcamera-devel
diff --git a/utils/checkstyle.py b/utils/checkstyle.py index 9c2a1837aa11..c0a6b7ab06cd 100755 --- a/utils/checkstyle.py +++ b/utils/checkstyle.py @@ -296,6 +296,30 @@ class ClassRegistry(type): return newclass +# ------------------------------------------------------------------------------ +# Commit Checkers +# + +class CommitChecker(metaclass=ClassRegistry): + subclasses = [] + + def __init__(self): + pass + + # + # Class methods + # + @classmethod + def checkers(cls): + for checker in cls.subclasses: + yield checker + + +class CommitIssue(object): + def __init__(self, msg): + self.msg = msg + + # ------------------------------------------------------------------------------ # Style Checkers # @@ -721,25 +745,29 @@ def check_style(top_level, commit): print(commit.title) print(separator) + issues = 0 + + # Apply the commit checkers first. + for checker in CommitChecker.checkers(): + for issue in checker.check(commit, top_level): + print('%s%s%s' % (Colours.fg(Colours.Yellow), issue.msg, Colours.reset())) + issues += 1 + # Filter out files we have no checker for. patterns = set() patterns.update(StyleChecker.all_patterns()) patterns.update(Formatter.all_patterns()) files = [f for f in commit.files() if len([p for p in patterns if fnmatch.fnmatch(os.path.basename(f), p)])] - if len(files) == 0: - print("Commit doesn't touch source files, skipping") - return 0 - issues = 0 for f in files: issues += check_file(top_level, commit, f) if issues == 0: - print("No style issue detected") + print("No issue detected") else: print('---') - print("%u potential style %s detected, please review" % \ - (issues, 'issue' if issues == 1 else 'issues')) + print("%u potential %s detected, please review" % + (issues, 'issue' if issues == 1 else 'issues')) return issues
Add a new category of checkers that operate on a whole commit. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> --- utils/checkstyle.py | 42 +++++++++++++++++++++++++++++++++++------- 1 file changed, 35 insertions(+), 7 deletions(-)