39 lines
1.1 KiB
Python

import os
import subprocess
from .exceptions import NpmInstallArgumentsError
from .conf import settings
from .interrogate import (
npm_installed, npm_version, npm_version_raw, raise_if_npm_missing, raise_if_npm_version_less_than, run_command
)
def ensure_npm_installed():
raise_if_npm_missing()
def ensure_npm_version_gte(required_version):
ensure_npm_installed()
raise_if_npm_version_less_than(required_version)
def npm_run(*args):
ensure_npm_installed()
return run_command((settings.PATH,) + tuple(args))
def npm_install(target_dir):
if not target_dir or not os.path.exists(target_dir) or not os.path.isdir(target_dir):
raise NpmInstallArgumentsError(
'npm.install\'s `target_dir` parameter must be a string pointing to a directory. Received "{0}"'.format(
target_dir
)
)
ensure_npm_installed()
command = (settings.PATH, settings.INSTALL_COMMAND)
if settings.INSTALL_PATH_TO_PYTHON:
command += ('--python={path_to_python}'.format(path_to_python=settings.INSTALL_PATH_TO_PYTHON),)
subprocess.call(command, cwd=target_dir)