UNPKG

@ph.fritsche/scripts-config

Version:
65 lines 2.2 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.rename = void 0; const fs_1 = __importDefault(require("fs")); const process_1 = __importDefault(require("process")); exports.rename = { description: 'Rename files per RegExp', options: { in: { description: 'Directory where files should be renamed', value: ['dir'], }, caseInsensitive: { short: 'i', long: false, description: 'Case-Insensitive', }, recursive: { short: 'r', long: false, description: 'Include sub-directories', }, dry: { description: 'Dry run', }, }, requiredArgs: [ { id: 'search', description: 'Regexp search pattern' }, { id: 'replace', description: 'Replacement' }, ], run(params) { if (params.options.in) { process_1.default.chdir(params.options.in.dir); } const regexp = new RegExp(params.args.search, [ params.options.caseInsensitive && 'i', ].filter(Boolean).join('')); mvRegExp(); function mvRegExp() { const cwd = process_1.default.cwd(); const d = fs_1.default.readdirSync('.'); for (const f of d) { if (fs_1.default.lstatSync(f).isDirectory()) { if (params.options.recursive) { process_1.default.chdir(f); mvRegExp(); process_1.default.chdir(cwd); } continue; } const newName = f.replace(regexp, params.args.replace); if (newName !== f) { process_1.default.stdout.write(`${f} => ${newName}\n`); if (!params.options.dry) { fs_1.default.renameSync(f, newName); } } } } }, }; //# sourceMappingURL=rename.js.map