From 54ce0eac674963ef406e8797dd6fd69192ae8266 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ph=C3=A9na=20Proxima?= <adam@phenaproxima.net> Date: Sun, 4 Jun 2023 15:51:02 -0400 Subject: [PATCH] Some fixes --- .../src/PathExcluder/SiteConfigurationExcluder.php | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/package_manager/src/PathExcluder/SiteConfigurationExcluder.php b/package_manager/src/PathExcluder/SiteConfigurationExcluder.php index c94632257c..aff1369e99 100644 --- a/package_manager/src/PathExcluder/SiteConfigurationExcluder.php +++ b/package_manager/src/PathExcluder/SiteConfigurationExcluder.php @@ -74,6 +74,10 @@ class SiteConfigurationExcluder implements EventSubscriberInterface { */ public function makeDefaultSiteDirectoryWritable(PostCreateEvent $event): void { $dir = $this->getDefaultSiteDirectoryPath($event->stage->getStageDirectory()); + // If the directory doesn't even exist, there's nothing to do here. + if (!is_dir($dir)) { + return; + } if (!$this->fileSystem->chmod($dir, 0777)) { throw new FileException("Could not change permissions on '$dir'."); } @@ -90,8 +94,12 @@ class SiteConfigurationExcluder implements EventSubscriberInterface { * cannot be determined, or cannot be changed on the staged `sites/default`. */ public function syncDefaultSiteDirectoryPermissions(PreApplyEvent $event): void { - $live_dir = $this->getDefaultSiteDirectoryPath($this->pathLocator->getProjectRoot()); $staged_dir = $this->getDefaultSiteDirectoryPath($event->stage->getStageDirectory()); + // If the directory doesn't even exist, there's nothing to do here. + if (!is_dir($staged_dir)) { + return; + } + $live_dir = $this->getDefaultSiteDirectoryPath($this->pathLocator->getProjectRoot()); // This is borrowed from \Symfony\Component\Filesystem\Filesystem::copy(), // to ensure the correct permissions are preserved (chmod() requires -- GitLab