diff --git a/flake8/run.py b/flake8/run.py index 7d5b137..bcc3308 100644 --- a/flake8/run.py +++ b/flake8/run.py @@ -164,5 +164,40 @@ def hg_hook(ui, repo, **kwargs): return 0 + +try: + from setuptools import Command +except ImportError: + Flake8Command = None +else: + class Flake8Command(Command): + description = "Run flake8 on modules registered in setuptools" + user_options = [] + + def initialize_options(self): + pass + + def finalize_options(self): + pass + + def distribution_files(self): + if self.distribution.packages: + for package in self.distribution.packages: + yield package + + if self.distribution.py_modules: + for filename in self.distribution.py_modules: + yield "%s.py" % filename + + def run(self): + _initpep8() + + warnings = 0 + for path in _get_python_files(self.distribution_files()): + warnings += check_file(path) + + raise SystemExit(warnings > 0) + + if __name__ == '__main__': main() diff --git a/setup.py b/setup.py index dee5365..1dc5694 100755 --- a/setup.py +++ b/setup.py @@ -24,6 +24,11 @@ setup( url="http://bitbucket.org/tarek/flake8", packages=["flake8", "flake8.tests"], scripts=["flake8/flake8"], + entry_points = { + "distutils.commands": [ + "flake8 = flake8.run:Flake8Command", + ], + }, long_description=README, classifiers=[ "Environment :: Console",