From d4c9f9075ed95fb166cf9f0d00e55e438829bbe1 Mon Sep 17 00:00:00 2001 From: Anthony Sottile Date: Mon, 24 Mar 2014 11:17:38 -0700 Subject: [PATCH] Fix node runner for running without a system-level node installed. --- pre_commit/languages/helpers.py | 2 +- pre_commit/languages/node.py | 13 ++++++------- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/pre_commit/languages/helpers.py b/pre_commit/languages/helpers.py index f0a01658..1aaf80a8 100644 --- a/pre_commit/languages/helpers.py +++ b/pre_commit/languages/helpers.py @@ -24,7 +24,7 @@ class Environment(object): """ raise NotImplementedError - def run(self, cmd, stdin=None, **kwargs): + def run(self, cmd, stdin=None): """Returns (returncode, stdout, stderr).""" proc = subprocess.Popen( ['bash', '-c', ' '.join([self.env_prefix, cmd])], diff --git a/pre_commit/languages/node.py b/pre_commit/languages/node.py index 8b56b4b9..0776d75e 100644 --- a/pre_commit/languages/node.py +++ b/pre_commit/languages/node.py @@ -31,13 +31,12 @@ def install_environment(): with python.in_env() as python_env: python_env.run('pip install nodeenv') - try: - # Try and use the system level node executable first - python_env.run('nodeenv -n system {0}'.format(NODE_ENV)) - except Exception: - # TODO: log exception here - # cleanup - local.path(NODE_ENV).remove() + # Try and use the system level node executable first + retcode, _, _ = python_env.run('nodeenv -n system {0}'.format(NODE_ENV)) + # TODO: log failure here + # cleanup + if retcode: + local.path(NODE_ENV).delete() python_env.run('nodeenv --jobs 4 {0}'.format(NODE_ENV)) with in_env() as node_env: