diff --git a/setup/runtimeenv.class.inc.php b/setup/runtimeenv.class.inc.php index 3e18f3cdd..1026d7b00 100644 --- a/setup/runtimeenv.class.inc.php +++ b/setup/runtimeenv.class.inc.php @@ -947,7 +947,9 @@ class RunTimeEnvironment ); $this->CommitDir( APPROOT.'env-'.$this->sTargetEnv, - APPROOT.'env-'.$this->sFinalEnv + APPROOT.'env-'.$this->sFinalEnv, + true, + false ); // Move the config file @@ -1013,14 +1015,15 @@ class RunTimeEnvironment * * @param $sSource * @param $sDest - * @param bool $bSourceMustExist + * @param boolean $bSourceMustExist + * @param boolean $bRemoveSource If true $sSource will be removed, otherwise $sSource will just be emptied * @throws Exception */ - protected function CommitDir($sSource, $sDest, $bSourceMustExist = true) + protected function CommitDir($sSource, $sDest, $bSourceMustExist = true, $bRemoveSource = true) { if (file_exists($sSource)) { - SetupUtils::movedir($sSource, $sDest); + SetupUtils::movedir($sSource, $sDest, $bRemoveSource); } else { diff --git a/setup/setuputils.class.inc.php b/setup/setuputils.class.inc.php index b1c64d541..428ca541c 100644 --- a/setup/setuputils.class.inc.php +++ b/setup/setuputils.class.inc.php @@ -82,7 +82,7 @@ class SetupUtils } // Check the common directories - $aWritableDirsErrors = self::CheckWritableDirs(array('log', 'env-production', 'conf', 'data')); + $aWritableDirsErrors = self::CheckWritableDirs(array('log', 'env-production', 'env-production-build', 'conf', 'data')); $aResult = array_merge($aResult, $aWritableDirsErrors); $aMandatoryExtensions = array('mysqli', 'iconv', 'simplexml', 'soap', 'hash', 'json', 'session', 'pcre', 'dom', 'phar', 'zlib', 'zip'); @@ -691,16 +691,17 @@ class SetupUtils } } - /** - * Helper to move a directory when the parent directory of the target dir cannot be written - * To be used as alternative to rename() - * Files/Subdirs of the source directory are moved one by one - * Returns void - * @param $sSource - * @param $sDest - * @throws Exception - */ - public static function movedir($sSource, $sDest) + /** + * Helper to move a directory when the parent directory of the target dir cannot be written + * To be used as alternative to rename() + * Files/Subdirs of the source directory are moved one by one + * Returns void + * + * @param string $sSource + * @param string $sDest + * @param boolean $bRemoveSource If true $sSource will be removed, otherwise $sSource will just be emptied + */ + public static function movedir($sSource, $sDest, $bRemoveSource = true) { if (!is_dir($sSource)) { @@ -717,7 +718,10 @@ class SetupUtils self::copydir($sSource, $sDest); self::tidydir($sSource); - rmdir($sSource); + if($bRemoveSource === true) + { + rmdir($sSource); + } /** * We have tried the following implementation (based on a rename/mv)