From e465129bd4e24df1b1a2ba9fc2e41a0287533bb3 Mon Sep 17 00:00:00 2001 From: Lucas Cimon Date: Wed, 6 Sep 2017 16:21:25 +0200 Subject: [PATCH] NodeJS hooks compatibilty fix for Cygwin - take 2 --- pre_commit/languages/node.py | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/pre_commit/languages/node.py b/pre_commit/languages/node.py index 58922672..49822dde 100644 --- a/pre_commit/languages/node.py +++ b/pre_commit/languages/node.py @@ -8,6 +8,7 @@ from pre_commit.envcontext import envcontext from pre_commit.envcontext import Var from pre_commit.languages import helpers from pre_commit.util import clean_path_on_failure +from pre_commit.util import cmd_output from pre_commit.xargs import xargs @@ -16,12 +17,16 @@ get_default_version = helpers.basic_get_default_version healthy = helpers.basic_healthy -def get_env_patch(venv): # pragma: windows no cover - config = os.path.join(venv, 'bin') if sys.platform == 'cygwin' else venv +def get_env_patch(venv): # pragma: windows no cover + if sys.platform == 'cygwin': # pragma: no cover + _, win_venv, _ = cmd_output('cygpath', '-w', venv) + install_prefix = r'{}\bin'.format(win_venv.strip()) + else: + install_prefix = venv return ( ('NODE_VIRTUAL_ENV', venv), - ('NPM_CONFIG_PREFIX', config), - ('npm_config_prefix', config), + ('NPM_CONFIG_PREFIX', install_prefix), + ('npm_config_prefix', install_prefix), ('NODE_PATH', os.path.join(venv, 'lib', 'node_modules')), ('PATH', (os.path.join(venv, 'bin'), os.pathsep, Var('PATH'))), )