88from pre_commit .util import CalledProcessError
99from pre_commit .util import clean_path_on_failure
1010from pre_commit .util import resource_filename
11+ from pre_commit .util import shell_escape
1112from pre_commit .util import tarfile_open
1213
1314
@@ -78,7 +79,11 @@ def _install_ruby(environment, version):
7879 environment .run ('rbenv install {0}' .format (version ))
7980
8081
81- def install_environment (repo_cmd_runner , version = 'default' ):
82+ def install_environment (
83+ repo_cmd_runner ,
84+ version = 'default' ,
85+ additional_dependencies = None ,
86+ ):
8287 directory = helpers .environment_dir (ENVIRONMENT_DIR , version )
8388 with clean_path_on_failure (repo_cmd_runner .path (directory )):
8489 # TODO: this currently will fail if there's no version specified and
@@ -88,9 +93,16 @@ def install_environment(repo_cmd_runner, version='default'):
8893 if version != 'default' :
8994 _install_ruby (ruby_env , version )
9095 ruby_env .run (
91- 'cd {prefix} && gem build *.gemspec'
92- ' && gem install --no-ri --no-rdoc *.gem' ,
96+ 'cd {prefix} && gem build *.gemspec && '
97+ 'gem install --no-ri --no-rdoc *.gem' ,
9398 )
99+ if additional_dependencies :
100+ ruby_env .run (
101+ 'cd {prefix} && gem install --no-ri --no-rdoc ' +
102+ ' ' .join (
103+ shell_escape (dep ) for dep in additional_dependencies
104+ )
105+ )
94106
95107
96108def run_hook (repo_cmd_runner , hook , file_args ):
0 commit comments