Merge pull request #604 from coldnight/master

Fix specify config file not work while installing
This commit is contained in:
Anthony Sottile
2017-09-05 10:12:48 -07:00
committed by GitHub
5 changed files with 25 additions and 10 deletions

View File

@@ -71,6 +71,7 @@ def install(
sys_executable=sys.executable,
hook_type=hook_type,
hook_specific=hook_specific_contents,
config_file=runner.config_file,
skip_on_missing_conf=skip_on_missing_conf,
)
pre_commit_file_obj.write(contents)

View File

@@ -1 +1 @@
args="run --hook-stage=commit-msg --commit-msg-filename=$1"
args="--hook-stage=commit-msg --commit-msg-filename=$1"

View File

@@ -38,13 +38,13 @@ if [ -x "$HERE"/{hook_type}.legacy ]; then
fi
fi
CONF_FILE=$(git rev-parse --show-toplevel)"/.pre-commit-config.yaml"
CONF_FILE="$(git rev-parse --show-toplevel)/{config_file}"
if [ ! -f $CONF_FILE ]; then
if [ $SKIP_ON_MISSING_CONF = true ] || [ ! -z $PRE_COMMIT_ALLOW_NO_CONFIG ]; then
echo '`.pre-commit-config.yaml` config file not found. Skipping `pre-commit`.'
echo '`{config_file}` config file not found. Skipping `pre-commit`.'
exit $retv
else
echo 'No .pre-commit-config.yaml file was found'
echo 'No {config_file} file was found'
echo '- To temporarily silence this, run `PRE_COMMIT_ALLOW_NO_CONFIG=1 git ...`'
echo '- To permanently silence this, install pre-commit with the `--allow-missing-config` option'
echo '- To uninstall pre-commit run `pre-commit uninstall`'
@@ -56,13 +56,13 @@ fi
# Run pre-commit
if ((WHICH_RETV == 0)); then
pre-commit $args
pre-commit run $args --config {config_file}
PRE_COMMIT_RETV=$?
elif ((ENV_PYTHON_RETV == 0)); then
"$ENV_PYTHON" -m pre_commit.main $args
"$ENV_PYTHON" -m pre_commit.main run $args
PRE_COMMIT_RETV=$?
else
python -m pre_commit.main $args
python -m pre_commit.main run $args
PRE_COMMIT_RETV=$?
fi

View File

@@ -9,14 +9,14 @@ do
# Check that the ancestor has at least one parent
git rev-list --max-parents=0 "$local_sha" | grep "$first_ancestor" > /dev/null
if [ $? -ne 0 ]; then
args="run --all-files"
args="--all-files"
else
source=$(git rev-parse "$first_ancestor"^)
args="run --origin $local_sha --source $source"
args="--origin $local_sha --source $source"
fi
fi
else
args="run --origin $local_sha --source $remote_sha"
args="--origin $local_sha --source $remote_sha"
fi
fi
done

View File

@@ -57,6 +57,7 @@ def test_install_pre_commit(tempdir_factory):
sys_executable=sys.executable,
hook_type='pre-commit',
hook_specific='',
config_file=runner.config_file,
skip_on_missing_conf='false',
)
assert pre_commit_contents == expected_contents
@@ -72,6 +73,7 @@ def test_install_pre_commit(tempdir_factory):
sys_executable=sys.executable,
hook_type='pre-push',
hook_specific=pre_push_template_contents,
config_file=runner.config_file,
skip_on_missing_conf='false',
)
assert pre_push_contents == expected_contents
@@ -160,6 +162,18 @@ def test_install_pre_commit_and_run(tempdir_factory):
assert NORMAL_PRE_COMMIT_RUN.match(output)
def test_install_pre_commit_and_run_custom_path(tempdir_factory):
path = make_consuming_repo(tempdir_factory, 'script_hooks_repo')
with cwd(path):
cmd_output('git', 'mv', C.CONFIG_FILE, 'custom-config.yaml')
cmd_output('git', 'commit', '-m', 'move pre-commit config')
assert install(Runner(path, 'custom-config.yaml')) == 0
ret, output = _get_commit_output(tempdir_factory)
assert ret == 0
assert NORMAL_PRE_COMMIT_RUN.match(output)
def test_install_in_submodule_and_run(tempdir_factory):
src_path = make_consuming_repo(tempdir_factory, 'script_hooks_repo')
parent_path = git_dir(tempdir_factory)