diff options
| -rw-r--r-- | build/build_helper.php | 57 | 
1 files changed, 19 insertions, 38 deletions
diff --git a/build/build_helper.php b/build/build_helper.php index 6a0fc0042e..7c75206d6d 100644 --- a/build/build_helper.php +++ b/build/build_helper.php @@ -325,19 +325,19 @@ class build_package  		$result = array();  		$file_contents = file($deleted_filename); -		foreach ($file_contents as $line) +		foreach ($file_contents as $filename)  		{ -			$line = trim($line); +			$filename = trim($filename); -			if (!$line) +			if (!$filename)  			{  				continue;  			} -			$line = str_replace('Only in ' . $package_name, '', $line); -			$line = ltrim($line, '/'); +			$filename = str_replace('Only in ' . $package_name, '', $filename); +			$filename = ltrim($filename, '/'); -			if (substr($line, 0, 1) == ':') +			if (substr($filename, 0, 1) == ':')  			{  				$replace = '';  			} @@ -346,45 +346,26 @@ class build_package  				$replace = '/';  			} -			$line = str_replace(': ', $replace, $line); - -			if (is_dir("{$this->locations['old_versions']}{$package_name}/{$line}")) -			{ -				$result = array_merge($result, $this->get_files_recursive("{$this->locations['old_versions']}{$package_name}/{$line}", $line)); -			} -			else -			{ -				$result[] = $line; -			} -		} - -		return $result; -	} - -	/** -	* Get recursively the list of the files contained in a directory -	* -	* @param string $directory_absolute Absolute path to the directory -	* @param string $directory          Relative path to the directory (used to prefixed the name of the files) -	* @return array -	*/ -	protected function get_files_recursive($directory_absolute, $directory) -	{ -		$result = array(); -		$files = scandir($directory_absolute); +			$filename = str_replace(': ', $replace, $filename); -		foreach ($files as $file) -		{ -			if (is_dir($directory_absolute . '/' . $file)) +			if (is_dir("{$this->locations['old_versions']}{$package_name}/{$filename}"))  			{ -				if ($file != '.' && $file != '..') +				$iterator = new \RecursiveIteratorIterator( +					new \RecursiveDirectoryIterator( +						"{$this->locations['old_versions']}{$package_name}/{$filename}", +						\FilesystemIterator::UNIX_PATHS | \FilesystemIterator::SKIP_DOTS +					), +					\RecursiveIteratorIterator::LEAVES_ONLY +				); + +				foreach ($iterator as $file_info)  				{ -					$result = array_merge($result, $this->get_files_recursive($directory_absolute . '/' . $file, $directory . '/' . $file)); +					$result[] = "{$filename}/{$iterator->getSubPathname()}";  				}  			}  			else  			{ -				$result[] = $directory . '/' . $file; +				$result[] = $filename;  			}  		}  | 
