File size: 1,253 Bytes
d3c6ada
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
37
38
39
<?php

/**
 * Matomo - free/libre analytics platform
 *
 * @link    https://matomo.org
 * @license https://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
 */

namespace Piwik\Plugins\CoreUpdater;

use Piwik\Filesystem;

class Model
{
    public function getPluginsFromDirectoy($directoryToLook)
    {
        $directories = _glob($directoryToLook . '/plugins/' . '*', GLOB_ONLYDIR);

        $directories = array_map(function ($directory) use ($directoryToLook) {
            return str_replace($directoryToLook, '', $directory);
        }, $directories);

        return $directories;
    }

    public function removeGoneFiles($source, $target)
    {
        Filesystem::unlinkTargetFilesNotPresentInSource($source . '/core', $target . '/core');
        Filesystem::unlinkTargetFilesNotPresentInSource($source . '/libs', $target . '/libs');
        Filesystem::unlinkTargetFilesNotPresentInSource($source . '/vendor', $target . '/vendor');
        Filesystem::unlinkTargetFilesNotPresentInSource($source . '/node_modules', $target . '/node_modules');

        foreach ($this->getPluginsFromDirectoy($source) as $pluginDir) {
            Filesystem::unlinkTargetFilesNotPresentInSource($source . $pluginDir, $target . $pluginDir);
        }
    }
}