UNPKG

use-multiple-gits

Version:

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

78 lines 3.36 kB
#!/usr/bin/env node "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const commander_1 = require("commander"); const fs_1 = require("fs"); const path_1 = require("path"); const add_1 = require("../commands/add"); const autoSwitch_1 = require("../commands/autoSwitch"); const export_1 = require("../commands/export"); const group_1 = require("../commands/group"); const hook_1 = require("../commands/hook"); const import_1 = require("../commands/import"); const init_1 = require("../commands/init"); const list_1 = require("../commands/list"); const remove_1 = require("../commands/remove"); const setLocal_1 = require("../commands/setLocal"); const setup_1 = require("../commands/setup"); const packageJson = JSON.parse((0, fs_1.readFileSync)((0, path_1.join)(__dirname, '../../package.json'), 'utf-8')); const program = new commander_1.Command(); program .name('multiGit') .description('CLI tool to manage multiple git configurations') .version(packageJson.version); program .command('setup') .description('Complete setup: install, initialize, and optionally add first config') .option('--auto-add <name>', 'Automatically add a configuration after setup') .option('--generate-ssh-key', 'Generate SSH key when adding config') .action((options) => { (0, setup_1.setupCommand)({ autoAdd: !!options.autoAdd, configName: options.autoAdd, generateSshKey: options.generateSshKey, }); }); program .command('init') .description('Initialize multi-git configuration system') .action(init_1.initCommand); program .command('add <name>') .description('Add a new git configuration') .option('--generate-ssh-key', 'Automatically generate SSH key if missing') .action((name, options) => { (0, add_1.addCommand)(name, { generateSshKey: options.generateSshKey }); }); program.command('list').description('List all configured git identities').action(list_1.listCommand); program.command('remove <name>').description('Remove a git configuration').action(remove_1.removeCommand); program .command('export [file]') .description('Export configurations to file (or stdout if no file specified)') .action(export_1.exportCommand); program .command('import <file>') .description('Import configurations from file') .action(import_1.importCommand); program .command('set-local <name>') .description('Set git config for current repository only (not global)') .action(setLocal_1.setLocalCommand); program .command('hook <action>') .description('Manage git hooks (install/uninstall pre-commit hook)') .action(hook_1.hookCommand); program .command('auto-switch <action>') .description('Manage auto-switch feature (enable/disable/add/remove)') .argument('[path]', 'Directory path for mapping') .argument('[config]', 'Config name for mapping') .action((action, path, config) => (0, autoSwitch_1.autoSwitchCommand)(action, path, config)); program .command('group <action>') .description('Manage configuration groups (create/add/remove/delete/list)') .argument('[groupName]', 'Group name') .argument('[configName]', 'Config name') .action((action, groupName, configName) => (0, group_1.groupCommand)(action, groupName, configName)); program.parse(); //# sourceMappingURL=multiGit.js.map