Add a pre-commit sample-config command

This commit is contained in:
Anthony Sottile 2017-03-30 08:43:50 -07:00
parent 9d747fb471
commit fa06e72f01
4 changed files with 71 additions and 53 deletions

View file

@ -0,0 +1,25 @@
from __future__ import absolute_import
from __future__ import print_function
from __future__ import unicode_literals
# TODO: maybe `git ls-remote git://github.com/pre-commit/pre-commit-hooks` to
# determine the latest revision? This adds ~200ms from my tests (and is
# significantly faster than https:// or http://). For now, periodically
# manually updating the revision is fine.
SAMPLE_CONFIG = '''\
# See http://pre-commit.com for more information
# See http://pre-commit.com/hooks.html for more hooks
- repo: https://github.com/pre-commit/pre-commit-hooks
sha: v0.7.1
hooks:
- id: trailing-whitespace
- id: end-of-file-fixer
- id: check-yaml
- id: check-added-large-files
'''
def sample_config():
print(SAMPLE_CONFIG, end='')
return 0

View file

@ -14,6 +14,7 @@ from pre_commit.commands.install_uninstall import install
from pre_commit.commands.install_uninstall import install_hooks
from pre_commit.commands.install_uninstall import uninstall
from pre_commit.commands.run import run
from pre_commit.commands.sample_config import sample_config
from pre_commit.error_handler import error_handler
from pre_commit.logging_handler import add_logging_handler
from pre_commit.runner import Runner
@ -163,6 +164,12 @@ def main(argv=None):
help='Specific filenames to run hooks on.',
)
sample_config_parser = subparsers.add_parser(
'sample-config', help='Produce a sample {} file'.format(C.CONFIG_FILE),
)
_add_color_option(sample_config_parser)
_add_config_option(sample_config_parser)
help = subparsers.add_parser(
'help', help='Show help for a specific command.',
)
@ -205,6 +212,8 @@ def main(argv=None):
return autoupdate(runner, args.tags_only)
elif args.command == 'run':
return run(runner, args)
elif args.command == 'sample-config':
return sample_config()
else:
raise NotImplementedError(
'Command {} not implemented.'.format(args.command)