| /** | |
| * 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); | |
| } | |
| } | |
| } | |