UNPKG

use-multiple-gits

Version:

CLI tool to manage multiple git configurations (user.name, user.email, SSH keys) with easy switching between identities

107 lines 5.49 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.groupCommand = void 0; const chalk_1 = __importDefault(require("chalk")); const groupManager_1 = require("../utils/groupManager"); const configStorage_1 = require("../utils/configStorage"); const groupCommand = async (action, groupName, configName) => { try { switch (action) { case 'create': if (!groupName) { console.error(chalk_1.default.red('\n❌ Missing group name\n')); console.log(chalk_1.default.yellow('Usage: multiGit group create <group-name>\n')); process.exit(1); } await (0, groupManager_1.createGroup)(groupName); console.log(chalk_1.default.green(`\n✅ Group "${groupName}" created!\n`)); break; case 'add': if (!groupName || !configName) { console.error(chalk_1.default.red('\n❌ Missing arguments\n')); console.log(chalk_1.default.yellow('Usage: multiGit group add <group-name> <config-name>\n')); process.exit(1); } await (0, groupManager_1.addConfigToGroup)(configName, groupName); console.log(chalk_1.default.green(`\n✅ Added "${configName}" to group "${groupName}"\n`)); break; case 'remove': if (!groupName || !configName) { console.error(chalk_1.default.red('\n❌ Missing arguments\n')); console.log(chalk_1.default.yellow('Usage: multiGit group remove <group-name> <config-name>\n')); process.exit(1); } await (0, groupManager_1.removeConfigFromGroup)(configName, groupName); console.log(chalk_1.default.green(`\n✅ Removed "${configName}" from group "${groupName}"\n`)); break; case 'delete': if (!groupName) { console.error(chalk_1.default.red('\n❌ Missing group name\n')); console.log(chalk_1.default.yellow('Usage: multiGit group delete <group-name>\n')); process.exit(1); } await (0, groupManager_1.deleteGroup)(groupName); console.log(chalk_1.default.green(`\n✅ Group "${groupName}" deleted!\n`)); break; case 'list': const groups = await (0, groupManager_1.getAllGroups)(); if (groups.length === 0) { console.log(chalk_1.default.yellow('\nNo groups found.\n')); } else { console.log(chalk_1.default.blue('\n📋 Configuration Groups:\n')); for (const group of groups) { const configs = await (0, groupManager_1.getGroupConfigs)(group); console.log(chalk_1.default.cyan(`${group}:`)); if (configs.length === 0) { console.log(chalk_1.default.gray(' (empty)')); } else { configs.forEach(config => { console.log(chalk_1.default.gray(` - ${config}`)); }); } console.log(''); } } break; case 'show': if (!groupName) { console.error(chalk_1.default.red('\n❌ Missing group name\n')); console.log(chalk_1.default.yellow('Usage: multiGit group show <group-name>\n')); process.exit(1); } const groupConfigs = await (0, groupManager_1.getGroupConfigs)(groupName); if (groupConfigs.length === 0) { console.log(chalk_1.default.yellow(`\nGroup "${groupName}" is empty or does not exist.\n`)); } else { console.log(chalk_1.default.blue(`\n📋 Group "${groupName}":\n`)); const allConfigs = await (0, configStorage_1.getAllConfigs)(); groupConfigs.forEach(configName => { const config = allConfigs.find(c => c.name === configName); if (config) { console.log(chalk_1.default.cyan(` ${config.displayName || config.name}`)); console.log(chalk_1.default.gray(` Name: ${config.userName}`)); console.log(chalk_1.default.gray(` Email: ${config.userEmail}`)); } }); console.log(''); } break; default: console.error(chalk_1.default.red(`\n❌ Unknown action: ${action}\n`)); console.log(chalk_1.default.yellow('Usage: multiGit group <create|add|remove|delete|list|show>\n')); process.exit(1); } } catch (error) { console.error(chalk_1.default.red(`\n❌ Error: ${error.message}\n`)); process.exit(1); } }; exports.groupCommand = groupCommand; //# sourceMappingURL=group.js.map