Added the additional_dependencies config parameter

Added the ability to specify additional dependencies to be installed in
the pre-commit environment. Fixed broken tests.
This commit is contained in:
Tobias Macey
2015-11-19 12:29:41 -05:00
parent 8a43a65557
commit 06b3d91da0
8 changed files with 37 additions and 9 deletions

View File

@@ -23,7 +23,8 @@ 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 +42,9 @@ 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(additional_dependencies))
def run_hook(repo_cmd_runner, hook, file_args):

View File

@@ -9,7 +9,8 @@ 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.')

View File

@@ -42,7 +42,8 @@ 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 +58,9 @@ 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 -U" +
(' ').join(additional_dependencies))
def run_hook(repo_cmd_runner, hook, file_args):

View File

@@ -78,7 +78,8 @@ 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
@@ -91,6 +92,11 @@ def install_environment(repo_cmd_runner, version='default'):
'cd {prefix} && gem build *.gemspec'
' && gem install --no-ri --no-rdoc *.gem',
)
if additional_dependencies:
ruby_env.run(
'cd {prefix} && gem install --no-document ' + (' ').join(
additional_dependencies)
)
def run_hook(repo_cmd_runner, hook, file_args):

View File

@@ -6,7 +6,8 @@ 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.')

View File

@@ -8,7 +8,8 @@ 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.')