mirror of
https://github.com/pre-commit/pre-commit.git
synced 2026-02-16 05:09:53 -06:00
Merge remote-tracking branch 'origin/master'
Conflicts: setup.py
This commit is contained in:
@@ -79,11 +79,6 @@ TESTS = [
|
||||
"All - No tabs",
|
||||
True, 'testtabs',
|
||||
),
|
||||
Test(
|
||||
"make test",
|
||||
"Py - Tests",
|
||||
False, 'testtests',
|
||||
),
|
||||
]
|
||||
|
||||
def get_git_config(config_name):
|
||||
|
||||
27
pre_commit/git.py
Normal file
27
pre_commit/git.py
Normal file
@@ -0,0 +1,27 @@
|
||||
import os
|
||||
import pkg_resources
|
||||
from plumbum import local
|
||||
|
||||
|
||||
def get_root():
|
||||
return local['git']['rev-parse', '--show-toplevel']().strip()
|
||||
|
||||
|
||||
def get_pre_commit_path():
|
||||
return os.path.join(get_root(), '.git/hooks/pre-commit')
|
||||
|
||||
|
||||
def create_pre_commit():
|
||||
path = get_pre_commit_path()
|
||||
pre_commit_file = pkg_resources.resource_filename('pre_commit', 'resources/pre-commit.sh')
|
||||
local.path(path).write(local.path(pre_commit_file).read())
|
||||
|
||||
|
||||
def remove_pre_commit():
|
||||
local.path(get_pre_commit_path()).delete()
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
3
pre_commit/resources/pre-commit.sh
Executable file
3
pre_commit/resources/pre-commit.sh
Executable file
@@ -0,0 +1,3 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
pre-commit
|
||||
@@ -1,11 +1,10 @@
|
||||
|
||||
import argparse
|
||||
|
||||
from pre_commit import git
|
||||
|
||||
def install():
|
||||
"""Install the pre-commit hook."""
|
||||
raise NotImplementedError
|
||||
|
||||
git.create_pre_commit()
|
||||
|
||||
def uninstall():
|
||||
"""Uninstall the pre-commit hook."""
|
||||
@@ -39,4 +38,4 @@ def run(argv):
|
||||
elif args.uninstall:
|
||||
return uninstall()
|
||||
else:
|
||||
return run_hooks(args)
|
||||
return run_hooks(args)
|
||||
|
||||
5
setup.py
5
setup.py
@@ -5,6 +5,11 @@ setup(
|
||||
name='pre_commit',
|
||||
version='0.0.0',
|
||||
packages=find_packages('.', exclude=('tests*', 'testing*')),
|
||||
package_data={
|
||||
'pre_commit': [
|
||||
'resources/pre-commit.sh'
|
||||
]
|
||||
},
|
||||
install_requires=[
|
||||
'argparse',
|
||||
'jsonschema',
|
||||
|
||||
42
tests/git_test.py
Normal file
42
tests/git_test.py
Normal file
@@ -0,0 +1,42 @@
|
||||
|
||||
import os
|
||||
import pytest
|
||||
|
||||
from plumbum import local
|
||||
from pre_commit import git
|
||||
|
||||
@pytest.fixture
|
||||
def empty_git_dir(tmpdir):
|
||||
local.cwd.chdir(tmpdir.strpath)
|
||||
local['git']['init']()
|
||||
return tmpdir.strpath
|
||||
|
||||
|
||||
def test_get_root(empty_git_dir):
|
||||
assert git.get_root() == empty_git_dir
|
||||
|
||||
foo = local.path('foo')
|
||||
foo.mkdir()
|
||||
local.cwd.chdir(foo)
|
||||
|
||||
assert git.get_root() == empty_git_dir
|
||||
|
||||
|
||||
def test_get_pre_commit_path(empty_git_dir):
|
||||
assert git.get_pre_commit_path() == '{0}/.git/hooks/pre-commit'.format(empty_git_dir)
|
||||
|
||||
|
||||
def test_create_pre_commit(empty_git_dir):
|
||||
git.create_pre_commit()
|
||||
assert len(open(git.get_pre_commit_path(), 'r').read()) > 0
|
||||
|
||||
|
||||
def test_remove_pre_commit(empty_git_dir):
|
||||
git.remove_pre_commit()
|
||||
|
||||
assert not os.path.exists(git.get_pre_commit_path())
|
||||
|
||||
git.create_pre_commit()
|
||||
git.remove_pre_commit()
|
||||
|
||||
assert not os.path.exists(git.get_pre_commit_path())
|
||||
Reference in New Issue
Block a user