mirror of
https://github.com/pre-commit/pre-commit.git
synced 2026-01-13 12:30:08 -06:00
Merge pull request #295 from blarghmatey/install_dependencies
Added the additional_dependencies config parameter
This commit is contained in:
@@ -12,7 +12,11 @@ from pre_commit.languages import system
|
||||
# # Use None for no environment
|
||||
# ENVIRONMENT_DIR = 'foo_env'
|
||||
#
|
||||
# def install_environment(repo_cmd_runner, version='default'):
|
||||
# def install_environment(
|
||||
# repo_cmd_runner,
|
||||
# version='default',
|
||||
# additional_dependencies=None,
|
||||
# ):
|
||||
# """Installs a repository in the given repository. Note that the current
|
||||
# working directory will already be inside the repository.
|
||||
#
|
||||
|
||||
@@ -5,6 +5,7 @@ import sys
|
||||
|
||||
from pre_commit.languages import helpers
|
||||
from pre_commit.util import clean_path_on_failure
|
||||
from pre_commit.util import shell_escape
|
||||
|
||||
|
||||
ENVIRONMENT_DIR = 'node_env'
|
||||
@@ -23,7 +24,11 @@ def in_env(repo_cmd_runner, language_version):
|
||||
yield NodeEnv(repo_cmd_runner, language_version)
|
||||
|
||||
|
||||
def install_environment(repo_cmd_runner, version='default'):
|
||||
def install_environment(
|
||||
repo_cmd_runner,
|
||||
version='default',
|
||||
additional_dependencies=None,
|
||||
):
|
||||
assert repo_cmd_runner.exists('package.json')
|
||||
directory = helpers.environment_dir(ENVIRONMENT_DIR, version)
|
||||
|
||||
@@ -41,6 +46,13 @@ def install_environment(repo_cmd_runner, version='default'):
|
||||
|
||||
with in_env(repo_cmd_runner, version) as node_env:
|
||||
node_env.run("cd '{prefix}' && npm install -g")
|
||||
if additional_dependencies:
|
||||
node_env.run(
|
||||
"cd '{prefix}' && npm install -g " +
|
||||
' '.join(
|
||||
shell_escape(dep) for dep in additional_dependencies
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
def run_hook(repo_cmd_runner, hook, file_args):
|
||||
|
||||
@@ -9,7 +9,11 @@ from pre_commit.util import shell_escape
|
||||
ENVIRONMENT_DIR = None
|
||||
|
||||
|
||||
def install_environment(repo_cmd_runner, version='default'):
|
||||
def install_environment(
|
||||
repo_cmd_runner,
|
||||
version='default',
|
||||
additional_dependencies=None,
|
||||
):
|
||||
"""Installation for pcre type is a noop."""
|
||||
raise AssertionError('Cannot install pcre repo.')
|
||||
|
||||
|
||||
@@ -9,6 +9,7 @@ import virtualenv
|
||||
|
||||
from pre_commit.languages import helpers
|
||||
from pre_commit.util import clean_path_on_failure
|
||||
from pre_commit.util import shell_escape
|
||||
|
||||
|
||||
ENVIRONMENT_DIR = 'py_env'
|
||||
@@ -42,7 +43,11 @@ def norm_version(version):
|
||||
return version
|
||||
|
||||
|
||||
def install_environment(repo_cmd_runner, version='default'):
|
||||
def install_environment(
|
||||
repo_cmd_runner,
|
||||
version='default',
|
||||
additional_dependencies=None,
|
||||
):
|
||||
assert repo_cmd_runner.exists('setup.py')
|
||||
directory = helpers.environment_dir(ENVIRONMENT_DIR, version)
|
||||
|
||||
@@ -57,6 +62,13 @@ def install_environment(repo_cmd_runner, version='default'):
|
||||
repo_cmd_runner.run(venv_cmd)
|
||||
with in_env(repo_cmd_runner, version) as env:
|
||||
env.run("cd '{prefix}' && pip install .")
|
||||
if additional_dependencies:
|
||||
env.run(
|
||||
"cd '{prefix}' && pip install " +
|
||||
' '.join(
|
||||
shell_escape(dep) for dep in additional_dependencies
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
def run_hook(repo_cmd_runner, hook, file_args):
|
||||
|
||||
@@ -8,6 +8,7 @@ from pre_commit.languages import helpers
|
||||
from pre_commit.util import CalledProcessError
|
||||
from pre_commit.util import clean_path_on_failure
|
||||
from pre_commit.util import resource_filename
|
||||
from pre_commit.util import shell_escape
|
||||
from pre_commit.util import tarfile_open
|
||||
|
||||
|
||||
@@ -78,7 +79,11 @@ def _install_ruby(environment, version):
|
||||
environment.run('rbenv install {0}'.format(version))
|
||||
|
||||
|
||||
def install_environment(repo_cmd_runner, version='default'):
|
||||
def install_environment(
|
||||
repo_cmd_runner,
|
||||
version='default',
|
||||
additional_dependencies=None,
|
||||
):
|
||||
directory = helpers.environment_dir(ENVIRONMENT_DIR, version)
|
||||
with clean_path_on_failure(repo_cmd_runner.path(directory)):
|
||||
# TODO: this currently will fail if there's no version specified and
|
||||
@@ -88,9 +93,16 @@ def install_environment(repo_cmd_runner, version='default'):
|
||||
if version != 'default':
|
||||
_install_ruby(ruby_env, version)
|
||||
ruby_env.run(
|
||||
'cd {prefix} && gem build *.gemspec'
|
||||
' && gem install --no-ri --no-rdoc *.gem',
|
||||
'cd {prefix} && gem build *.gemspec && '
|
||||
'gem install --no-ri --no-rdoc *.gem',
|
||||
)
|
||||
if additional_dependencies:
|
||||
ruby_env.run(
|
||||
'cd {prefix} && gem install --no-ri --no-rdoc ' +
|
||||
' '.join(
|
||||
shell_escape(dep) for dep in additional_dependencies
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
def run_hook(repo_cmd_runner, hook, file_args):
|
||||
|
||||
@@ -6,7 +6,11 @@ from pre_commit.languages.helpers import file_args_to_stdin
|
||||
ENVIRONMENT_DIR = None
|
||||
|
||||
|
||||
def install_environment(repo_cmd_runner, version='default'):
|
||||
def install_environment(
|
||||
repo_cmd_runner,
|
||||
version='default',
|
||||
additional_dependencies=None,
|
||||
):
|
||||
"""Installation for script type is a noop."""
|
||||
raise AssertionError('Cannot install script repo.')
|
||||
|
||||
@@ -14,7 +18,6 @@ def install_environment(repo_cmd_runner, version='default'):
|
||||
def run_hook(repo_cmd_runner, hook, file_args):
|
||||
return repo_cmd_runner.run(
|
||||
['xargs', '-0', '{{prefix}}{0}'.format(hook['entry'])] + hook['args'],
|
||||
# TODO: this is duplicated in pre_commit/languages/helpers.py
|
||||
stdin=file_args_to_stdin(file_args),
|
||||
retcode=None,
|
||||
encoding=None,
|
||||
|
||||
@@ -8,7 +8,11 @@ from pre_commit.languages.helpers import file_args_to_stdin
|
||||
ENVIRONMENT_DIR = None
|
||||
|
||||
|
||||
def install_environment(repo_cmd_runner, version='default'):
|
||||
def install_environment(
|
||||
repo_cmd_runner,
|
||||
version='default',
|
||||
additional_dependencies=None,
|
||||
):
|
||||
"""Installation for system type is a noop."""
|
||||
raise AssertionError('Cannot install system repo.')
|
||||
|
||||
|
||||
Reference in New Issue
Block a user