@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
JavaScript
;
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