]> granicus.if.org Git - php/commitdiff
fix bug #1615: installer must create extension dir if it doesn't exist, patch by...
authorGreg Beaver <cellog@php.net>
Sat, 12 Jun 2004 05:48:10 +0000 (05:48 +0000)
committerGreg Beaver <cellog@php.net>
Sat, 12 Jun 2004 05:48:10 +0000 (05:48 +0000)
pear/PEAR/Installer.php

index 0963dbd1f7feeb612d71ee8f6493dbe32d271633..5b178267813ce877079df3c0acdf1c0eeaec204e 100644 (file)
@@ -795,7 +795,14 @@ class PEAR_Installer extends PEAR_Downloader
                         $this->raiseError("Extension '$_ext_name' already loaded. Please unload it ".
                                           "in your php.ini file prior to install or upgrade it.");
                     }
-                    $dest = $this->config->get('ext_dir') . DIRECTORY_SEPARATOR . $bn;
+                    // extension dir must be created if it doesn't exist
+                    // patch by Tomas Cox (modified by Greg Beaver)
+                    $ext_dir = $this->config->get('ext_dir');
+                    if (!@is_dir($ext_dir) && !System::mkdir(array('-p', $ext_dir))) {
+                        $this->log(3, "+ mkdir -p $ext_dir");
+                        return $this->raiseError("failed to create extension dir '$ext_dir'");
+                    }
+                    $dest = $ext_dir . DIRECTORY_SEPARATOR . $bn;
                     $this->log(1, "Installing '$bn' at ext_dir ($dest)");
                     $this->log(3, "+ cp $ext[file] ext_dir ($dest)");
                     $copyto = $this->_prependPath($dest, $this->installroot);