From 645e7a0c9e1939816bdf592a966618c6d02e729a Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Sun, 21 Sep 2014 17:16:21 +0200 Subject: [PATCH] delete old previews --- lib/private/repair.php | 12 +++++++++++- lib/repair/preview.php | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 43 insertions(+), 1 deletion(-) create mode 100644 lib/repair/preview.php diff --git a/lib/private/repair.php b/lib/private/repair.php index 6cd24d6c300..6cdcc31fbcf 100644 --- a/lib/private/repair.php +++ b/lib/private/repair.php @@ -80,11 +80,21 @@ class Repair extends BasicEmitter { * @return array of RepairStep instances */ public static function getBeforeUpgradeRepairSteps() { - return array( + $steps = array( new \OC\Repair\InnoDB(), new \OC\Repair\Collation(\OC::$server->getConfig(), \OC_DB::getConnection()), new \OC\Repair\SearchLuceneTables() ); + + //There is no need to delete all previews on every single update + //only 7.0.0 thru 7.0.2 generated broken previews + $currentVersion = \OC_Config::getValue('version'); + if (version_compare($currentVersion, '7.0.0.0', '>=') && + version_compare($currentVersion, '7.0.2.2', '<=')) { + $steps[] = new \OC\Repair\Preview(); + } + + return $steps; } /** diff --git a/lib/repair/preview.php b/lib/repair/preview.php new file mode 100644 index 00000000000..1216b3fe68a --- /dev/null +++ b/lib/repair/preview.php @@ -0,0 +1,32 @@ + + * This file is licensed under the Affero General Public License version 3 or + * later. + * See the COPYING-README file. + */ +namespace OC\Repair; + +use OC\Files\View; +use OC\Hooks\BasicEmitter; + +class Preview extends BasicEmitter implements \OC\RepairStep { + + public function getName() { + return 'Cleaning-up broken previews'; + } + + public function run() { + $view = new View('/'); + $children = $view->getDirectoryContent('/'); + + foreach ($children as $child) { + if ($view->is_dir($child->getPath())) { + $thumbnailsFolder = $child->getPath() . '/thumbnails'; + if ($view->is_dir($thumbnailsFolder)) { + $view->rmdir($thumbnailsFolder); + } + } + } + } +} \ No newline at end of file -- 2.39.5