From 09323532338168dc439975827e88c5f51cd8bf8b Mon Sep 17 00:00:00 2001 From: Josh Richards Date: Thu, 2 May 2024 18:58:39 -0400 Subject: [PATCH] fix(recursiveDelete): Handle symlinked folders correctly Signed-off-by: Josh Richards --- composer.lock | 2 +- index.php | 12 +++++------- lib/Updater.php | 12 +++++------- updater.phar | Bin 1172792 -> 1172950 bytes 4 files changed, 11 insertions(+), 15 deletions(-) diff --git a/composer.lock b/composer.lock index 0e235ad4..8137b9a8 100644 --- a/composer.lock +++ b/composer.lock @@ -1044,5 +1044,5 @@ "platform-overrides": { "php": "8.0" }, - "plugin-api-version": "2.6.0" + "plugin-api-version": "2.3.0" } diff --git a/index.php b/index.php index 69c1d161..83e27c8b 100644 --- a/index.php +++ b/index.php @@ -829,14 +829,12 @@ private function recursiveDelete(string $folder): void { $directories = []; $files = []; foreach ($iterator as $fileInfo) { - if ($fileInfo->isDir()) { + if ($fileInfo->isLink()) { + $files[] = $fileInfo->getPathname(); + } elseif ($fileInfo->isFile()) { + $files[] = $fileInfo->getRealPath(); + } elseif ($fileInfo->isDir()) { $directories[] = $fileInfo->getRealPath(); - } else { - if ($fileInfo->isLink()) { - $files[] = $fileInfo->getPathName(); - } else { - $files[] = $fileInfo->getRealPath(); - } } } diff --git a/lib/Updater.php b/lib/Updater.php index 37d112d1..b043997a 100644 --- a/lib/Updater.php +++ b/lib/Updater.php @@ -791,14 +791,12 @@ private function recursiveDelete(string $folder): void { $directories = []; $files = []; foreach ($iterator as $fileInfo) { - if ($fileInfo->isDir()) { + if ($fileInfo->isLink()) { + $files[] = $fileInfo->getPathname(); + } elseif ($fileInfo->isFile()) { + $files[] = $fileInfo->getRealPath(); + } elseif ($fileInfo->isDir()) { $directories[] = $fileInfo->getRealPath(); - } else { - if ($fileInfo->isLink()) { - $files[] = $fileInfo->getPathName(); - } else { - $files[] = $fileInfo->getRealPath(); - } } } diff --git a/updater.phar b/updater.phar index 3e760b1bd4669b4725feebfedcb7caa81fbb8e27..8d16b0f0ab11d43c66fee21d4dc166f5ad64334b 100755 GIT binary patch delta 8416 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 Hg?ax6YLeaF delta 9169 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