diff options
author | Georg Ehrke <developer@georgehrke.com> | 2014-09-21 17:16:21 +0200 |
---|---|---|
committer | Georg Ehrke <developer@georgehrke.com> | 2014-09-21 17:16:21 +0200 |
commit | ab2554e013107880ff92130b7cef6dd0ad3af762 (patch) | |
tree | d78dc53d12bdbcdaaff245eb29a199047b958d5e | |
parent | 69726d951e805e8692907c99b24edbc3099b29d4 (diff) | |
download | nextcloud-server-ab2554e013107880ff92130b7cef6dd0ad3af762.tar.gz nextcloud-server-ab2554e013107880ff92130b7cef6dd0ad3af762.zip |
delete old previews
-rw-r--r-- | lib/private/repair.php | 12 | ||||
-rw-r--r-- | lib/repair/preview.php | 32 |
2 files changed, 43 insertions, 1 deletions
diff --git a/lib/private/repair.php b/lib/private/repair.php index 50e54ae1179..c7db8b2617d 100644 --- a/lib/private/repair.php +++ b/lib/private/repair.php @@ -82,11 +82,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 @@ +<?php +/** + * Copyright (c) 2014 Georg Ehrke <georg@ownCloud.com> + * 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 |