From: Mikael Nordfeldth <mmn@hethane.se>
Date: Sun, 27 Dec 2015 23:35:02 +0000 (+0100)
Subject: create storage directories automatically
X-Git-Url: https://git.mxchange.org/?a=commitdiff_plain;h=c0ef167514e97e0c64e49da090d3a352ed86bdb4;p=quix0rs-gnu-social.git

create storage directories automatically
---

diff --git a/lib/installer.php b/lib/installer.php
index 5e09c97329..971e2562b0 100644
--- a/lib/installer.php
+++ b/lib/installer.php
@@ -135,8 +135,14 @@ abstract class Installer
         // Check the subdirs used for file uploads
         $fileSubdirs = array('avatar', 'file');
         foreach ($fileSubdirs as $fileSubdir) {
-            $fileFullPath = INSTALLDIR."/$fileSubdir/";
-            if (!is_writable($fileFullPath)) {
+            $fileFullPath = INSTALLDIR."/$fileSubdir";
+            if (!file_exists($fileFullPath)) {
+                $pass = $pass && mkdir($fileFullPath);
+            } elseif (!is_dir($fileFullPath)) {
+                $this->warning(sprintf('GNU social expected a directory but found something else on this path: %s', $fileFullPath),
+                               'Either make sure it goes to a directory or remove it and a directory will be created.');
+                $pass = false;
+            } elseif (!is_writable($fileFullPath)) {
                 $this->warning(sprintf('Cannot write to %s directory: <code>%s</code>', $fileSubdir, $fileFullPath),
                                sprintf('On your server, try this command: <code>chmod a+w %s</code>', $fileFullPath));
                 $pass = false;