@@ -11,10 +11,11 @@ task('rename-files', 'Batch replace text in local filenames')
11
11
12
12
const files = (
13
13
await Promise . all (
14
- directories . map ( async ( dir ) => {
15
- const files = await fs . promises . readdir ( dir , { recursive : true } ) ;
16
- return files . map ( ( file ) => path . resolve ( dir , file ) ) ;
17
- } ) ,
14
+ directories . map ( async ( dir ) =>
15
+ ( await fs . promises . readdir ( dir , { recursive : true } ) ) . map ( ( file ) =>
16
+ path . resolve ( dir , file ) ,
17
+ ) ,
18
+ ) ,
18
19
)
19
20
)
20
21
. flat ( )
@@ -28,19 +29,34 @@ task('rename-files', 'Batch replace text in local filenames')
28
29
29
30
console . log ( `Found ${ files . length } files to rename:` ) ;
30
31
32
+ const fileContents : { [ file : string ] : string } = { } ;
33
+
34
+ await Promise . all (
35
+ files . map (
36
+ async ( f ) =>
37
+ ( fileContents [ f ] = ( await fs . promises . readFile ( f ) ) . toString ( ) ) ,
38
+ ) ,
39
+ ) ;
40
+
31
41
for ( const oldName of files ) {
32
42
const newName = path . resolve (
33
43
path . dirname ( oldName ) ,
34
44
path . basename ( oldName ) . replace ( args . oldText , args . newText ) ,
35
45
) ;
36
46
47
+ const newContents = fileContents [ oldName ] . replaceAll (
48
+ args . oldText ,
49
+ args . newText ,
50
+ ) ;
51
+
37
52
console . log (
38
53
path . relative ( '.' , oldName ) ,
39
54
'=>' ,
40
55
path . relative ( '.' , newName ) ,
41
56
) ;
42
57
43
58
if ( args . write ) {
59
+ await fs . promises . writeFile ( oldName , newContents ) ;
44
60
await fs . promises . rename ( oldName , newName ) ;
45
61
}
46
62
}
0 commit comments