UNPKG

@aurracloud/mcp-cli

Version:

A command-line tool to install, manage, and setup MCP (Model Context Protocol) servers with Docker support

71 lines 2.99 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.upgradeCommand = upgradeCommand; const child_process_1 = require("child_process"); const logger_1 = require("../utils/logger"); /** * Compare two semantic versions * Returns true if version1 is less than version2 */ function isVersionLower(version1, version2) { const v1Parts = version1.split('.').map(Number); const v2Parts = version2.split('.').map(Number); for (let i = 0; i < Math.max(v1Parts.length, v2Parts.length); i++) { const v1Part = v1Parts[i] || 0; const v2Part = v2Parts[i] || 0; if (v1Part < v2Part) return true; if (v1Part > v2Part) return false; } return false; // versions are equal } /** * Command to upgrade the MCP CLI tool to the latest version */ async function upgradeCommand(options) { logger_1.logger.info('Checking for updates...'); try { // Get package info from package.json const packageJson = require('../../package.json'); const currentVersion = packageJson.version; const packageName = packageJson.name; logger_1.logger.info(`Current version: ${currentVersion}`); // Check latest version available on npm logger_1.logger.info('Fetching latest version from npm...'); const latestVersionOutput = (0, child_process_1.execSync)(`npm view ${packageName} version`, { encoding: 'utf8', stdio: 'pipe' }).trim(); const latestVersion = latestVersionOutput; logger_1.logger.info(`Latest version: ${latestVersion}`); // Compare versions if (!isVersionLower(currentVersion, latestVersion)) { logger_1.logger.success('You are already using the latest version!'); return; } // Upgrade the package globally logger_1.logger.info(`Upgrading ${packageName} to the latest version...`); (0, child_process_1.execSync)(`npm install -g ${packageName}@latest`, { stdio: 'inherit' }); logger_1.logger.success(`Successfully upgraded from ${currentVersion} to ${latestVersion}!`); logger_1.logger.info('You can now use the updated version of mcp-cli.'); } catch (error) { // Get package name for error messages const packageName = require('../../package.json').name; if (error.message.includes('404')) { logger_1.logger.error(`Package not found on npm. Make sure ${packageName} is published to npm registry.`); } else if (error.message.includes('EACCES') || error.message.includes('permission denied')) { logger_1.logger.error('Permission denied. You may need to run this command with sudo:'); logger_1.logger.info('sudo mcp upgrade'); } else { logger_1.logger.error('Upgrade failed:', error.message); } process.exit(1); } } //# sourceMappingURL=upgrade.js.map