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