From a49a34ef3d991e95fdda1e986a0e5e9fc826ef87 Mon Sep 17 00:00:00 2001 From: Anthony Sottile Date: Sat, 29 Dec 2018 13:13:31 -0800 Subject: [PATCH] Add identity meta hook --- pre_commit/meta_hooks/identity.py | 13 +++++++++++++ pre_commit/repository.py | 8 ++++++++ tests/meta_hooks/identity_test.py | 6 ++++++ 3 files changed, 27 insertions(+) create mode 100644 pre_commit/meta_hooks/identity.py create mode 100644 tests/meta_hooks/identity_test.py diff --git a/pre_commit/meta_hooks/identity.py b/pre_commit/meta_hooks/identity.py new file mode 100644 index 00000000..ae7377b8 --- /dev/null +++ b/pre_commit/meta_hooks/identity.py @@ -0,0 +1,13 @@ +import sys + +from pre_commit import output + + +def main(argv=None): + argv = argv if argv is not None else sys.argv[1:] + for arg in argv: + output.write_line(arg) + + +if __name__ == '__main__': + exit(main()) diff --git a/pre_commit/repository.py b/pre_commit/repository.py index 2a435506..e245a1a3 100644 --- a/pre_commit/repository.py +++ b/pre_commit/repository.py @@ -237,6 +237,7 @@ class MetaRepository(LocalRepository): # The hooks are imported here to prevent circular imports. from pre_commit.meta_hooks import check_hooks_apply from pre_commit.meta_hooks import check_useless_excludes + from pre_commit.meta_hooks import identity def _make_entry(mod): """the hook `entry` is passed through `shlex.split()` by the @@ -260,6 +261,13 @@ class MetaRepository(LocalRepository): 'language': 'system', 'entry': _make_entry(check_useless_excludes), }, + { + 'id': 'identity', + 'name': 'identity', + 'language': 'system', + 'verbose': True, + 'entry': _make_entry(identity), + }, ] return { diff --git a/tests/meta_hooks/identity_test.py b/tests/meta_hooks/identity_test.py new file mode 100644 index 00000000..3eff00be --- /dev/null +++ b/tests/meta_hooks/identity_test.py @@ -0,0 +1,6 @@ +from pre_commit.meta_hooks import identity + + +def test_identity(cap_out): + assert not identity.main(('a', 'b', 'c')) + assert cap_out.get() == 'a\nb\nc\n'