aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoas Schilling <nickvergessen@gmx.de>2014-05-08 14:22:01 +0200
committerJoas Schilling <nickvergessen@gmx.de>2014-05-08 14:22:01 +0200
commit5f2b0fba1e2c30d01717a628e6deb4f93052d38e (patch)
treeb1095d7c48622eeba5be6a93541a256faf721b40
parentdcfb4cacd86e4694e1938bc5f23a917eccf2b178 (diff)
parente4beea0c1e2a2dc423d112cf14277b49cd4f1f4e (diff)
downloadforums-5f2b0fba1e2c30d01717a628e6deb4f93052d38e.tar
forums-5f2b0fba1e2c30d01717a628e6deb4f93052d38e.tar.gz
forums-5f2b0fba1e2c30d01717a628e6deb4f93052d38e.tar.bz2
forums-5f2b0fba1e2c30d01717a628e6deb4f93052d38e.tar.xz
forums-5f2b0fba1e2c30d01717a628e6deb4f93052d38e.zip
Merge pull request #2410 from Nicofuma/ticket/12325
[ticket/12325] Generate the list of the deleted files and folders * Nicofuma/ticket/12325: [ticket/12325] Use \RecursiveDirectoryIterator [ticket/12325] Doc blocks [ticket/12325] Change private function to protected [ticket/12325] Add visibilities [ticket/12325] Add files located in deleted dirs [ticket/12325] Generate the list of the deleted files and folders
-rw-r--r--build/build.xml1
-rw-r--r--build/build_helper.php59
-rwxr-xr-xbuild/package.php13
3 files changed, 73 insertions, 0 deletions
diff --git a/build/build.xml b/build/build.xml
index 01fb48a383..79b6096c97 100644
--- a/build/build.xml
+++ b/build/build.xml
@@ -141,6 +141,7 @@
<exec dir="build/old_versions" command="LC_ALL=C diff -crNEBwd release-${version} release-${newversion} >
../new_version/patches/phpBB-${version}_to_${newversion}.patch" escape="false" />
+ <exec dir="build/old_versions" command="LC_ALL=C diff -qr release-${version} release-${newversion} | grep 'Only in release-${version}' > ../new_version/patches/phpBB-${version}_to_${newversion}.deleted" escape="false" />
</target>
<target name="prepare-new-version">
diff --git a/build/build_helper.php b/build/build_helper.php
index d6169b913b..7c75206d6d 100644
--- a/build/build_helper.php
+++ b/build/build_helper.php
@@ -312,4 +312,63 @@ class build_package
return $result;
}
+
+ /**
+ * Collect the list of the deleted files from a list of deleted files and folders.
+ *
+ * @param string $deleted_filename The full path to a file containing the list of deleted files and directories
+ * @param string $package_name The name of the package
+ * @return array
+ */
+ public function collect_deleted_files($deleted_filename, $package_name)
+ {
+ $result = array();
+ $file_contents = file($deleted_filename);
+
+ foreach ($file_contents as $filename)
+ {
+ $filename = trim($filename);
+
+ if (!$filename)
+ {
+ continue;
+ }
+
+ $filename = str_replace('Only in ' . $package_name, '', $filename);
+ $filename = ltrim($filename, '/');
+
+ if (substr($filename, 0, 1) == ':')
+ {
+ $replace = '';
+ }
+ else
+ {
+ $replace = '/';
+ }
+
+ $filename = str_replace(': ', $replace, $filename);
+
+ if (is_dir("{$this->locations['old_versions']}{$package_name}/{$filename}"))
+ {
+ $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[] = "{$filename}/{$iterator->getSubPathname()}";
+ }
+ }
+ else
+ {
+ $result[] = $filename;
+ }
+ }
+
+ return $result;
+ }
}
diff --git a/build/package.php b/build/package.php
index 00930abe65..206e3b6640 100755
--- a/build/package.php
+++ b/build/package.php
@@ -45,6 +45,10 @@ if (sizeof($package->old_packages))
$package->get('patch_directory') . '/phpBB-' . $dest_package_filename . $package->get('new_version_number') . '.patch',
$_package_name
);
+ $diff_file_changes[$_package_name]['deleted'] = $package->collect_deleted_files(
+ $package->get('patch_directory') . '/phpBB-' . $dest_package_filename . $package->get('new_version_number') . '.deleted',
+ $_package_name
+ );
}
// Now put those files determined within the correct directories
@@ -292,6 +296,15 @@ $update_info = array(
$index_contents .= "\t'binary' => array(),\n";
}
+ if (sizeof($file_contents['deleted']))
+ {
+ $index_contents .= "\t'deleted' => array(\n\t\t'" . implode("',\n\t\t'", $file_contents['deleted']) . "',\n\t),\n";
+ }
+ else
+ {
+ $index_contents .= "\t'deleted' => array(),\n";
+ }
+
$index_contents .= ");\n";
$fp = fopen($dest_filename_dir . '/install/update/index.php', 'wt');