Skip to content

Commit 1fd0a42

Browse files
authored
Merge pull request #280 from bancer/4.x-issue-279
Rename children directories before parent in renameSubFolders
2 parents b17922a + 4997727 commit 1fd0a42

File tree

2 files changed

+17
-3
lines changed

2 files changed

+17
-3
lines changed

.github/workflows/ci.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ jobs:
1616
strategy:
1717
fail-fast: false
1818
matrix:
19-
php-version: ['8.0', '8.1']
19+
php-version: ['8.0', '8.1', '8.2', '8.3']
2020
prefer-lowest: ['']
2121
include:
2222
- php-version: '8.0'

src/Command/FileRenameCommand.php

+16-2
Original file line numberDiff line numberDiff line change
@@ -207,10 +207,24 @@ protected function renameSubFolders(string $path): void
207207
RecursiveRegexIterator::SPLIT
208208
);
209209

210+
// Collect directories in an array for sorting
211+
$directories = [];
210212
foreach ($templateDirs as $val) {
213+
$directories[] = [
214+
'source' => $val[0] . '/' . $folder,
215+
'target' => $val[0] . '/' . strtolower($folder),
216+
];
217+
}
218+
219+
// Sort directories based on path length (longest to shortest) so that children before parents
220+
usort($directories, function ($a, $b) {
221+
return strlen($b['source']) - strlen($a['source']);
222+
});
223+
224+
foreach ($directories as $directory) {
211225
$this->renameWithCasing(
212-
$val[0] . '/' . $folder,
213-
$val[0] . '/' . strtolower($folder)
226+
$directory['source'],
227+
$directory['target']
214228
);
215229
}
216230
}

0 commit comments

Comments
 (0)