From e6d4f114d2cdaeb93a90f1e7d35426b0449997de Mon Sep 17 00:00:00 2001 From: moldcraft Date: Mon, 22 Dec 2014 10:36:54 +0200 Subject: [PATCH] don't merge if source extension directory is empty --- class-fw-extension-update.php | 25 ++++++++++++++++++------- 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/class-fw-extension-update.php b/class-fw-extension-update.php index 54d5137..3620bda 100644 --- a/class-fw-extension-update.php +++ b/class-fw-extension-update.php @@ -545,6 +545,24 @@ private function merge_extensions($source_dir, $destination_dir) $source_extension_dir = $source_dir .'/'. $ext_dir['name']; $destination_extension_dir = $destination_dir .'/'. $ext_dir['name']; + { + $source_ext_files = $wp_filesystem->dirlist($source_extension_dir, true); + if ($source_ext_files === false) { + return new WP_Error($wp_error_id, + __('Cannot access directory: ', 'fw') . $source_extension_dir + ); + } + + if (empty($source_ext_files)) { + /** + * Source extension directory is empty, do nothing. + * This happens when the extension is a git submodule in repository + * but in zip it comes as an empty directory. + */ + continue; + } + } + // prepare destination { // create if not exists @@ -590,13 +608,6 @@ private function merge_extensions($source_dir, $destination_dir) // move files from source to destination extension directory { - $source_ext_files = $wp_filesystem->dirlist($source_extension_dir, true); - if ($source_ext_files === false) { - return new WP_Error($wp_error_id, - __('Cannot access directory: ', 'fw') . $source_extension_dir - ); - } - $source_has_extensions_dir = false; foreach ($source_ext_files as $source_ext_file) {