function update_manager_archive_extract
update_manager_archive_extract($file, $directory)
Unpacks a downloaded archive file.
Parameters
string $file: The filename of the archive you wish to extract.
string $directory: The directory you wish to extract the archive into.
Return value
Archiver The Archiver object used to extract the archive.
Throws
Exception
Related topics
File
- modules/update/update.manager.inc, line 775
- Administrative screens and processing functions of the Update Manager module.
Code
function update_manager_archive_extract($file, $directory) { $archiver = archiver_get_archiver($file); if (!$archiver) { throw new Exception(t('Cannot extract %file, not a valid archive.', array('%file' => $file))); } // Remove the directory if it exists, otherwise it might contain a mixture of // old files mixed with the new files (e.g. in cases where files were removed // from a later release). $files = $archiver->listContents(); // Unfortunately, we can only use the directory name to determine the project // name. Some archivers list the first file as the directory (i.e., MODULE/) // and others list an actual file (i.e., MODULE/README.TXT). $project = strtok($files[0], '/\\'); $extract_location = $directory . '/' . $project; if (file_exists($extract_location)) { file_unmanaged_delete_recursive($extract_location); } $archiver->extract($directory); return $archiver; }
© 2001–2016 by the original authors
Licensed under the GNU General Public License, version 2 and later.
Drupal is a registered trademark of Dries Buytaert.
https://api.drupal.org/api/drupal/modules!update!update.manager.inc/function/update_manager_archive_extract/7.x