@ph.fritsche/scripts-config
Version:
Shared scripts config
65 lines • 2.2 kB
JavaScript
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
;