cvm-cli
Version:
A unified CLI tool for managing PHP, Node.js, and Python versions with virtual environment and dependency management support.
46 lines (38 loc) • 980 B
JavaScript
const { spawn } = require('child_process');
const path = require('path');
const cvmPath = path.join(__dirname, 'cvm.js');
const args = process.argv.slice(2);
// Map cnvm commands to cvm commands
const command = args[0];
const version = args[1];
if (!command) {
console.log('Usage: cnvm {install|use|list|uninstall} [version]');
console.log('Examples:');
console.log(' cnvm install 18.0.0');
console.log(' cnvm use 16.14.0');
console.log(' cnvm list');
console.log(' cnvm uninstall 14.17.0');
process.exit(1);
}
let cvmArgs;
switch (command) {
case 'install':
case 'use':
case 'uninstall':
cvmArgs = [command, 'node', version];
break;
case 'list':
cvmArgs = [command, 'node'];
break;
default:
console.log(`Unknown command: ${command}`);
process.exit(1);
}
const child = spawn('node', [cvmPath, ...cvmArgs], {
stdio: 'inherit',
shell: true
});
child.on('exit', (code) => {
process.exit(code);
});