def check_if_installed(self): cmd = [self.tool_path, '-version'] self.log.debug("Trying %s: %s", self.tool_name, cmd) try: output = sync_run(cmd) self.log.debug("%s output: %s", self.tool_name, output) self.version = self._get_version(output) return True except (subprocess.CalledProcessError, OSError) as exc: self.log.debug("Failed to check %s: %s", self.tool_name, exc) return False
def install(self): try: package_name = self.package_name if self.version: package_name += "@" + self.version cmdline = [self.npm.tool_path, 'install', package_name, '--prefix', self.tools_dir, '--no-save'] output = sync_run(cmdline) self.log.debug("%s install output: %s", self.tool_name, output) return True except CALL_PROBLEMS: self.log.debug("%s install failed: %s", self.package_name, traceback.format_exc()) return False
def check_if_installed(self): try: cmdline = [self.node.tool_path, "-e"] ok_msg = "%s is installed" % self.package_name cmdline.append("require('%s'); console.log('%s');" % (self.package_name, ok_msg)) self.log.debug("%s check cmdline: %s", self.package_name, cmdline) self.log.debug("NODE_PATH for check: %s", self.env.get("NODE_PATH")) output = sync_run(cmdline, env=self.env.get()) return ok_msg in output except CALL_PROBLEMS: self.log.debug("%s check failed: %s", self.package_name, traceback.format_exc()) return False
def check_if_installed(self): candidates = ["npm"] if is_windows(): candidates.append("npm.cmd") for candidate in candidates: try: self.log.debug("Trying %r", candidate) output = sync_run([candidate, '--version']) self.log.debug("%s output: %s", candidate, output) self.tool_path = candidate return True except CALL_PROBLEMS: self.log.debug("%r is not installed", candidate) continue return False