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