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