Barryvdh\Composer\CleanupPlugin::cleanPackage PHP Method

cleanPackage() protected method

Clean a package, based on its rules.
protected cleanPackage ( Composer\Package\BasePackage $package ) : boolean
$package Composer\Package\BasePackage The package to clean
return boolean True if cleaned
    protected function cleanPackage(BasePackage $package)
    {
        // Only clean 'dist' packages
        if ($package->getInstallationSource() !== 'dist') {
            return false;
        }
        $vendorDir = $this->config->get('vendor-dir');
        $targetDir = $package->getTargetDir();
        $packageName = $package->getPrettyName();
        $packageDir = $targetDir ? $packageName . '/' . $targetDir : $packageName;
        $rules = isset($this->rules[$packageName]) ? $this->rules[$packageName] : null;
        if (!$rules) {
            return;
        }
        $dir = $this->filesystem->normalizePath(realpath($vendorDir . '/' . $packageDir));
        if (!is_dir($dir)) {
            return false;
        }
        foreach ((array) $rules as $part) {
            // Split patterns for single globs (should be max 260 chars)
            $patterns = explode(' ', trim($part));
            foreach ($patterns as $pattern) {
                try {
                    foreach (glob($dir . '/' . $pattern) as $file) {
                        $this->filesystem->remove($file);
                    }
                } catch (\Exception $e) {
                    $this->io->write("Could not parse {$packageDir} ({$pattern}): " . $e->getMessage());
                }
            }
        }
        return true;
    }