diff options
author | Vincent Petry <pvince81@owncloud.com> | 2015-08-25 14:09:38 +0200 |
---|---|---|
committer | Vincent Petry <pvince81@owncloud.com> | 2015-09-23 10:51:37 +0200 |
commit | 0bda4d54c5b77b4ea2865fbcc27f8c86d9f20513 (patch) | |
tree | 60aa5b31a7fc8127423118b3a6c6ae825606ba50 /lib/repair | |
parent | 9fbd3fa6c14a59dc829a47cd334b9038777105b4 (diff) | |
download | nextcloud-server-0bda4d54c5b77b4ea2865fbcc27f8c86d9f20513.tar.gz nextcloud-server-0bda4d54c5b77b4ea2865fbcc27f8c86d9f20513.zip |
Repair mime types only when upgrading from OC 8.0
Diffstat (limited to 'lib/repair')
-rw-r--r-- | lib/repair/repairmimetypes.php | 66 |
1 files changed, 43 insertions, 23 deletions
diff --git a/lib/repair/repairmimetypes.php b/lib/repair/repairmimetypes.php index 89ad0ed16c7..db11f526ad6 100644 --- a/lib/repair/repairmimetypes.php +++ b/lib/repair/repairmimetypes.php @@ -29,6 +29,17 @@ namespace OC\Repair; use OC\Hooks\BasicEmitter; class RepairMimeTypes extends BasicEmitter implements \OC\RepairStep { + /** + * @var \OCP\IConfig + */ + protected $config; + + /** + * @param \OCP\IConfig $config + */ + public function __construct($config) { + $this->config = $config; + } public function getName() { return 'Repair mime types'; @@ -243,36 +254,45 @@ class RepairMimeTypes extends BasicEmitter implements \OC\RepairStep { * Fix mime types */ public function run() { - if ($this->fixOfficeMimeTypes()) { - $this->emit('\OC\Repair', 'info', array('Fixed office mime types')); - } - if ($this->fixApkMimeType()) { - $this->emit('\OC\Repair', 'info', array('Fixed APK mime type')); - } + $ocVersionFromBeforeUpdate = $this->config->getSystemValue('version', '0.0.0'); - if ($this->fixFontsMimeTypes()) { - $this->emit('\OC\Repair', 'info', array('Fixed fonts mime types')); - } + // NOTE TO DEVELOPERS: when adding new mime types, please make sure to + // add a version comparison to avoid doing it every time - if ($this->fixPostscriptMimeType()) { - $this->emit('\OC\Repair', 'info', array('Fixed Postscript mime types')); - } + // only update mime types if necessary as it can be expensive + if (version_compare($ocVersionFromBeforeUpdate, '8.2.0', '<')) { + if ($this->fixOfficeMimeTypes()) { + $this->emit('\OC\Repair', 'info', array('Fixed office mime types')); + } - if ($this->introduceRawMimeType()) { - $this->emit('\OC\Repair', 'info', array('Fixed Raw mime types')); - } + if ($this->fixApkMimeType()) { + $this->emit('\OC\Repair', 'info', array('Fixed APK mime type')); + } - if ($this->introduce3dImagesMimeType()) { - $this->emit('\OC\Repair', 'info', array('Fixed 3D images mime types')); - } + if ($this->fixFontsMimeTypes()) { + $this->emit('\OC\Repair', 'info', array('Fixed fonts mime types')); + } - if ($this->introduceConfMimeType()) { - $this->emit('\OC\Repair', 'info', array('Fixed Conf/cnf mime types')); - } + if ($this->fixPostscriptMimeType()) { + $this->emit('\OC\Repair', 'info', array('Fixed Postscript mime types')); + } + + if ($this->introduceRawMimeType()) { + $this->emit('\OC\Repair', 'info', array('Fixed Raw mime types')); + } + + if ($this->introduce3dImagesMimeType()) { + $this->emit('\OC\Repair', 'info', array('Fixed 3D images mime types')); + } - if ($this->introduceYamlMimeType()) { - $this->emit('\OC\Repair', 'info', array('Fixed Yaml/Yml mime types')); + if ($this->introduceConfMimeType()) { + $this->emit('\OC\Repair', 'info', array('Fixed Conf/cnf mime types')); + } + + if ($this->introduceYamlMimeType()) { + $this->emit('\OC\Repair', 'info', array('Fixed Yaml/Yml mime types')); + } } } } |