diff --git a/pre_commit/clientlib/validate_manifest.py b/pre_commit/clientlib/validate_manifest.py index 46e68e93..035114e3 100644 --- a/pre_commit/clientlib/validate_manifest.py +++ b/pre_commit/clientlib/validate_manifest.py @@ -57,7 +57,6 @@ def check_is_valid_manifest(file_contents): ) - def run(argv): parser = argparse.ArgumentParser() parser.add_argument( diff --git a/pre_commit/entry_points.py b/pre_commit/entry_points.py new file mode 100644 index 00000000..4d508256 --- /dev/null +++ b/pre_commit/entry_points.py @@ -0,0 +1,23 @@ + +import functools + +import pre_commit.clientlib.validate_manifest +import pre_commit.run + + +def make_entry_point(entry_point_func): + """Decorator which turns a function which takes sys.argv[1:] and returns + an integer into an argumentless function which returns an integer. + + Args: + entry_point_func - A function which takes an array representing argv + """ + @functools.wraps(entry_point_func) + def func(): + import sys + return entry_point_func(sys.argv[1:]) + return func + + +pre_commit_func = make_entry_point(pre_commit.run.run) +validate_manifest_func = make_entry_point(pre_commit.clientlib.validate_manifest.run) \ No newline at end of file diff --git a/pre_commit/run.py b/pre_commit/run.py index c281ff72..f8ef0551 100644 --- a/pre_commit/run.py +++ b/pre_commit/run.py @@ -35,8 +35,8 @@ def run(argv): args = parser.parse_args(argv) if args.install: - install() + return install() elif args.uninstall: - uninstall() + return uninstall() else: - run_hooks(args) \ No newline at end of file + return run_hooks(args) \ No newline at end of file diff --git a/scripts/pre-commit.py b/scripts/pre-commit.py deleted file mode 100755 index 063ad9c2..00000000 --- a/scripts/pre-commit.py +++ /dev/null @@ -1,8 +0,0 @@ -#!/usr/bin/env python - -if __name__ == '__main__': - import sys - - from pre_commit.run import run - - sys.exit(run(sys.argv[1:])) \ No newline at end of file diff --git a/scripts/validate-manifest.py b/scripts/validate-manifest.py deleted file mode 100755 index ce998df6..00000000 --- a/scripts/validate-manifest.py +++ /dev/null @@ -1,8 +0,0 @@ -#!/usr/bin/env python - -if __name__ == '__main__': - import sys - - from pre_commit.clientlib.validate_manifest import run - - sys.exit(run(sys.argv[1:])) \ No newline at end of file diff --git a/setup.py b/setup.py index 9033e75e..5f155857 100644 --- a/setup.py +++ b/setup.py @@ -12,8 +12,10 @@ setup( 'pyyaml', 'simplejson', ], - scripts=[ - 'scripts/pre-commit.py', - 'scripts/validate-manifest.py', - ], + entry_points={ + 'console_scripts': [ + 'pre-commit = pre_commit.entry_points:pre_commit_func', + 'validate-manifest = pre_commit.entry_points:validate_manifest_func', + ], + } )