UNPKG

sourcecontrol

Version:

A modern TypeScript CLI application for source control

65 lines 2.81 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.ignoreCommand = void 0; const commander_1 = require("commander"); const fs_extra_1 = __importDefault(require("fs-extra")); const path_1 = __importDefault(require("path")); const ignore_manager_1 = require("../../core/ignore/ignore-manager"); const ignore_display_1 = require("./ignore.display"); const ignore_handler_1 = require("./ignore.handler"); const helpers_1 = require("../../utils/helpers"); exports.ignoreCommand = new commander_1.Command('ignore') .description('🙈 Manage ignored file patterns') .option('-a, --add <patterns...>', 'Add patterns to .sourceignore') .option('-l, --list', 'List all ignore patterns') .option('-c, --check <files...>', 'Check if files are ignored') .option('--create', 'Create default .sourceignore file') .option('-e, --edit', 'Open .sourceignore in editor') .option('-s, --stats', 'Show ignore statistics') .option('-v, --verbose', 'Verbose output') .option('-q, --quiet', 'Suppress output') .action(async (options) => { try { const repo = await (0, helpers_1.getRepo)(); const ignoreManager = new ignore_manager_1.IgnoreManager(repo); await ignoreManager.initialize(); if (options.create) { await (0, ignore_handler_1.createDefaultIgnoreFile)(repo); } else if (options.add && options.add.length > 0) { await (0, ignore_handler_1.addPatternsToIgnore)(repo, ignoreManager, options.add); } else if (options.list) { await (0, ignore_handler_1.listIgnorePatterns)(repo); } else if (options.check && options.check.length > 0) { await (0, ignore_handler_1.checkIgnoreStatus)(ignoreManager, options.check); } else if (options.stats) { await showIgnoreStats(ignoreManager); } else if (options.edit) { await (0, ignore_handler_1.editIgnoreFile)(repo); } else { await showIgnoreHelp(repo); } } catch (error) { (0, ignore_display_1.handleIgnoreError)(error, options.quiet || false); process.exit(1); } }); async function showIgnoreStats(ignoreManager) { const stats = ignoreManager.getStats(); (0, ignore_display_1.displayIgnoreStats)(stats); } async function showIgnoreHelp(repository) { const ignorePath = path_1.default.join(repository.workingDirectory().toString(), '.sourceignore'); const exists = await fs_extra_1.default.pathExists(ignorePath); (0, ignore_display_1.displayIgnoreHelp)(exists); } //# sourceMappingURL=ignore.js.map