1import { TransformFilesContent, FileContentTransformStepSettings } from './TransformFilesContent'; 2import chalk from 'chalk'; 3import path from 'path'; 4import fs from 'fs-extra'; 5import { findFiles } from '../utils'; 6 7export class TransformFilesName extends TransformFilesContent { 8 constructor(settings: FileContentTransformStepSettings) { 9 super(settings); 10 } 11 12 async execute() { 13 const workDirectory = this.getWorkingDirectory(); 14 15 this.logSubStep( 16 ` find ${chalk.yellow(this.find.toString())} in files names in path ${chalk.green( 17 this.overrideWorkingDirectory() || '<workingDirectory>' 18 )}/${chalk.yellow(this.filePattern)} and replace with ${chalk.magenta(this.replace)}` 19 ); 20 21 const files = await findFiles(workDirectory, this.filePattern); 22 await Promise.all( 23 files.map((file) => { 24 const fileName = path.basename(file).replace(this.find, this.replace); 25 const parent = path.dirname(file); 26 27 return fs.rename(file, path.join(parent, fileName)); 28 }) 29 ); 30 } 31} 32 33export function renameIOSFiles({ 34 find, 35 replace, 36}: { 37 find: string; 38 replace: string; 39}): TransformFilesName { 40 return new TransformFilesName({ 41 filePattern: path.join('ios', '**', `*${find}*.@(m|h)`), 42 find, 43 replace, 44 }); 45} 46