]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - lib/installer.php
Faster NodeInfo stats
[quix0rs-gnu-social.git] / lib / installer.php
index e73216f18d42b3ebc1b62d816e1f5b507dc0dd6c..9551b693675b179b4d5bf596a7d57dc05ce6e1f0 100644 (file)
@@ -46,6 +46,8 @@ abstract class Installer
     public $sitename, $server, $path, $fancy, $siteProfile, $ssl;
     /** DB info */
     public $host, $database, $dbtype, $username, $password, $db;
+    /** Storage info */
+    public $avatarDir, $fileDir;
     /** Administrator info */
     public $adminNick, $adminPass, $adminEmail;
     /** Should we skip writing the configuration file? */
@@ -135,22 +137,28 @@ abstract class Installer
         // Check the subdirs used for file uploads
         // TODO get another flag for this --skipFileSubdirCreation
         if (!$this->skipConfig) {
-            $fileSubdirs = array($this->avatarDir, $this->fileDir);
-        foreach ($fileSubdirs as $fileSubdir) {
-            $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;
+            define('GNUSOCIAL', true);
+            define('STATUSNET', true);
+            require_once INSTALLDIR . '/lib/language.php';
+            $_server=$this->server; $_path=$this->path; // We won't be using those so it's safe to do this small hack
+            require_once INSTALLDIR.DIRECTORY_SEPARATOR.'lib'.DIRECTORY_SEPARATOR.'default.php';
+            $fileSubdirs = [empty($this->avatarDir) ? $default['avatar']['dir'] : $this->avatarDir,
+                            empty($this->fileDir)   ? $default['attachments']['dir'] : $this->fileDir];
+            unset($default);
+            foreach ($fileSubdirs as $fileFullPath) {
+                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;
+                }
             }
         }
-        }
         return $pass;
     }
 
@@ -517,6 +525,9 @@ abstract class Installer
      */
     function registerInitialUser()
     {
+        // initalize hostname from install arguments, so it can be used to find
+        // the /etc config file from the commandline installer
+        $server = $this->server;
         require_once INSTALLDIR . '/lib/common.php';
 
         $data = array('nickname' => $this->adminNick,