Skip to content
Snippets Groups Projects
Verified Commit 3d46d27b authored by Jess's avatar Jess
Browse files

Issue #3304433 by lauriii, xjm, quietone, tim.plunkett, Wim Leers, mherchel,...

Issue #3304433 by lauriii, xjm, quietone, tim.plunkett, Wim Leers, mherchel, andy-blum: generate-theme scripts fails in a ddev environment
parent 3f16a424
No related branches found
No related tags found
No related merge requests found
......@@ -252,9 +252,15 @@ protected function execute(InputInterface $input, OutputInterface $output): int
}
}
if (!rename($tmp_dir, $destination)) {
$io->getErrorStyle()->error("The theme could not be moved to the destination: $destination.");
return 1;
if (!@rename($tmp_dir, $destination)) {
// If rename fails, copy the files to the destination directory. This is
// expected to happen when the tmp directory is on a different file
// system.
$this->copyRecursive($tmp_dir, $destination);
// Renaming would not have left anything behind. Ensure that is still the
// case.
$this->rmRecursive($tmp_dir);
}
$output->writeln(sprintf('Theme generated successfully to %s', $destination));
......@@ -262,6 +268,19 @@ protected function execute(InputInterface $input, OutputInterface $output): int
return 0;
}
/**
* Removes a directory recursively.
*
* @param string $dir
* A directory to be removed.
*/
private function rmRecursive(string $dir): void {
$files = new \RecursiveIteratorIterator(new \RecursiveDirectoryIterator($dir, \RecursiveDirectoryIterator::SKIP_DOTS), \RecursiveIteratorIterator::CHILD_FIRST);
foreach ($files as $file) {
is_dir($file) ? rmdir($file) : unlink($file);
}
}
/**
* Copies files recursively.
*
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment