mirror of
https://github.com/PyCQA/flake8.git
synced 2026-04-15 00:44:44 +00:00
Use a template for git pre-commit hook
Previously, we forced Flake8 to be installed in whatever Python
environment that the user was using. This allows someone to use Flake8
from a virtual environment, e.g., if you use the tox.ini from this
commit, you can do:
tox -e venv -- flake8 --install-hook git
And that will allow you to use the Python and Flake8 from
./.tox/venv/bin/python. This means that you can avoid installing
Flake8 globally and still have a working commit hook.
This commit is contained in:
parent
07101231d9
commit
29896e648a
1 changed files with 11 additions and 2 deletions
|
|
@ -9,6 +9,7 @@ import os
|
||||||
import shutil
|
import shutil
|
||||||
import stat
|
import stat
|
||||||
import subprocess
|
import subprocess
|
||||||
|
import sys
|
||||||
import tempfile
|
import tempfile
|
||||||
|
|
||||||
from flake8 import defaults
|
from flake8 import defaults
|
||||||
|
|
@ -80,8 +81,10 @@ def install():
|
||||||
path=pre_commit_file,
|
path=pre_commit_file,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
executable = get_executable()
|
||||||
|
|
||||||
with open(pre_commit_file, 'w') as fd:
|
with open(pre_commit_file, 'w') as fd:
|
||||||
fd.write(_HOOK_TEMPLATE)
|
fd.write(_HOOK_TEMPLATE.format(executable=executable))
|
||||||
|
|
||||||
# NOTE(sigmavirus24): The following sets:
|
# NOTE(sigmavirus24): The following sets:
|
||||||
# - read, write, and execute permissions for the owner
|
# - read, write, and execute permissions for the owner
|
||||||
|
|
@ -94,6 +97,12 @@ def install():
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
|
||||||
|
def get_executable():
|
||||||
|
if sys.executable is not None:
|
||||||
|
return sys.executable
|
||||||
|
return '/usr/bin/env python'
|
||||||
|
|
||||||
|
|
||||||
def find_git_directory():
|
def find_git_directory():
|
||||||
rev_parse = piped_process(['git', 'rev-parse', '--git-dir'])
|
rev_parse = piped_process(['git', 'rev-parse', '--git-dir'])
|
||||||
|
|
||||||
|
|
@ -182,7 +191,7 @@ def config_for(parameter):
|
||||||
return value.lower() in defaults.TRUTHY_VALUES
|
return value.lower() in defaults.TRUTHY_VALUES
|
||||||
|
|
||||||
|
|
||||||
_HOOK_TEMPLATE = """#!/usr/bin/env python
|
_HOOK_TEMPLATE = """#!{executable}
|
||||||
import os
|
import os
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue