Blame view
sources/apps/updater/lib/location/core.php
1.98 KB
|
d1bafeea1
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
<?php
/**
* ownCloud - Updater plugin
*
* @author Victor Dubiniuk
* @copyright 2013 Victor Dubiniuk victor.dubiniuk@gmail.com
*
* This file is licensed under the Affero General Public License version 3 or
* later.
*/
namespace OCA\Updater;
class Location_Core extends Location {
protected $type = 'core';
public function check() {
$errors = parent::check();
$specialCases = array(
$this->oldBase . '/' . 'config',
$this->oldBase . '/' . 'themes',
);
foreach ($specialCases as $item) {
if (!is_writable($item)) {
$errors[] = $item;
}
}
return $errors;
}
protected function filterOld($pathArray) {
$skip = array_values(Helper::getDirectories());
|
|
6d9380f96
|
37 38 39 |
$skip[] = realpath(App::getBackupBase());
$skip[] = realpath(\OCP\Config::getSystemValue("datadirectory", \OC::$SERVERROOT . "/data"));
$skip[] = realpath(App::getTempBase());
|
|
d1bafeea1
|
40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 |
// Skip 3rdparty | apps | backup | datadir | config | themes
foreach ($pathArray as $key => $path) {
if ($path === 'config' || $path === 'themes') {
unset($pathArray[$key]);
}
if (in_array($this->oldBase . '/' . $path, $skip)) {
unset($pathArray[$key]);
}
}
return $pathArray;
}
protected function filterNew($pathArray) {
// Skip config | themes
foreach ($pathArray as $key => $path) {
if ($path === 'config' || $path === 'themes') {
unset($pathArray[$key]);
}
}
return $pathArray;
}
protected function finalize() {
// overwrite config.sample.php
Helper::removeIfExists($this->oldBase . '/config/config.sample.php');
Helper::move($this->newBase . '/config/config.sample.php', $this->oldBase . '/config/config.sample.php');
// overwrite themes content with new files only
$themes = $this->toAbsolute(
$this->newBase . '/themes', Helper::scandir($this->newBase . '/themes')
);
foreach ($themes as $name => $location) {
Helper::removeIfExists($this->oldBase . '/themes/' . $name);
Helper::move($location, $this->oldBase . '/themes/' . $name);
}
parent::finalize();
}
}
|