PluginProbe ʕ •ᴥ•ʔ
Paid Membership Plugin, Ecommerce, User Registration Form, Login Form, User Profile & Restrict Content – ProfilePress / 4.17.0
Paid Membership Plugin, Ecommerce, User Registration Form, Login Form, User Profile & Restrict Content – ProfilePress v4.17.0
4.17.2 4.17.1 4.17.0 4.16.19 4.16.18 4.16.17 4.16.16 trunk 1.0 1.0.1 1.0.2 1.1 1.1.1 1.1.2 1.1.3 1.1.4 1.1.5 1.1.5a 1.1.6 1.1.7 1.2 1.2.1 1.2.2 1.2.3 1.2.4 1.2.5 1.2.6 1.3 1.3.1 1.3.2 1.3.3 1.3.4 1.3.5 1.3.6 1.4 1.4.1 1.4.2 1.5 1.5.1 1.5.2 1.5.3 1.5.4 1.5.5 1.5.6 1.5.7 1.5.8 1.6 1.6.1 1.6.2 1.6.3 1.6.4 1.6.5 1.6.6 1.6.7 1.6.8 1.7 1.7.1 1.7.2 1.8 1.8.1 1.8.10 1.8.2 1.8.3 1.8.4 1.8.5 1.8.6 1.8.7 1.8.8 1.8.9 1.9 1.9.1 1.9.10 1.9.11 1.9.12 1.9.13 1.9.2 1.9.3 1.9.4 1.9.5 1.9.6 1.9.7 1.9.8 1.9.9 2.1.9 2.2.10 2.2.11 2.2.12 2.2.13 2.2.14 2.2.15 2.2.16 2.2.2 2.2.5 2.2.6 2.2.7 2.2.8 2.2.9 3.0 3.1 3.1.1 3.1.10 3.1.11 3.1.12 3.1.13 3.1.14 3.1.15 3.1.16 3.1.17 3.1.18 3.1.19 3.1.2 3.1.3 3.1.4 3.1.5 3.1.6 3.1.7 3.1.8 3.1.9 3.2.0 3.2.1 3.2.10 3.2.11 3.2.12 3.2.13 3.2.14 3.2.15 3.2.16 3.2.2 3.2.3 3.2.4 3.2.5 3.2.6 3.2.7 3.2.8 3.2.9 4.0.0 4.0.1 4.0.2 4.0.3 4.1.0 4.1.1 4.1.2 4.1.3 4.1.4 4.10.0 4.10.1 4.10.2 4.10.3 4.11.0 4.12.0 4.13.0 4.13.1 4.13.2 4.13.3 4.13.4 4.14.0 4.14.1 4.14.2 4.14.3 4.14.4 4.15.0 4.15.1 4.15.10 4.15.11 4.15.12 4.15.13 4.15.14 4.15.15 4.15.16 4.15.17 4.15.18 4.15.19 4.15.2 4.15.20 4.15.20.1 4.15.21 4.15.22 4.15.23 4.15.24 4.15.25 4.15.3 4.15.4 4.15.5 4.15.6 4.15.7 4.15.8 4.15.9 4.16.0 4.16.1 4.16.10 4.16.11 4.16.12 4.16.13 4.16.14 4.16.15 4.16.2 4.16.3 4.16.4 4.16.5 4.16.6 4.16.7 4.16.8 4.16.9 4.2.0 4.3.0 4.3.1 4.3.2 4.4.0 4.4.1 4.5.0 4.5.1 4.5.2 4.5.3 4.5.4 4.5.5 4.6.0 4.7.0 4.8.0 4.9.0
wp-user-avatar / third-party / vendor / barryvdh / composer-cleanup-plugin / src / CleanupPlugin.php
wp-user-avatar / third-party / vendor / barryvdh / composer-cleanup-plugin / src Last commit date
CleanupPlugin.php 2 months ago CleanupRules.php 2 months ago
CleanupPlugin.php
132 lines
1 <?php
2
3 namespace ProfilePressVendor\Barryvdh\Composer;
4
5 use ProfilePressVendor\Composer\Composer;
6 use ProfilePressVendor\Composer\EventDispatcher\EventSubscriberInterface;
7 use ProfilePressVendor\Composer\IO\IOInterface;
8 use ProfilePressVendor\Composer\Plugin\PluginInterface;
9 use ProfilePressVendor\Composer\Script\ScriptEvents;
10 use ProfilePressVendor\Composer\Installer\PackageEvent;
11 use ProfilePressVendor\Composer\Script\CommandEvent;
12 use ProfilePressVendor\Composer\Util\Filesystem;
13 use ProfilePressVendor\Composer\Package\BasePackage;
14 class CleanupPlugin implements PluginInterface, EventSubscriberInterface
15 {
16 /** @var \Composer\Composer $composer */
17 protected $composer;
18 /** @var \Composer\IO\IOInterface $io */
19 protected $io;
20 /** @var \Composer\Config $config */
21 protected $config;
22 /** @var \Composer\Util\Filesystem $filesystem */
23 protected $filesystem;
24 /** @var array $rules */
25 protected $rules;
26 /**
27 * {@inheritDoc}
28 */
29 public function activate(Composer $composer, IOInterface $io)
30 {
31 $this->composer = $composer;
32 $this->io = $io;
33 $this->config = $composer->getConfig();
34 $this->filesystem = new Filesystem();
35 $this->rules = CleanupRules::getRules();
36 }
37 /**
38 * {@inheritDoc}
39 */
40 public function deactivate(Composer $composer, IOInterface $io)
41 {
42 //
43 }
44 /**
45 * {@inheritDoc}
46 */
47 public function uninstall(Composer $composer, IOInterface $io)
48 {
49 //
50 }
51 /**
52 * {@inheritDoc}
53 */
54 public static function getSubscribedEvents()
55 {
56 return array('post-package-install' => 'onPostPackageInstall', 'post-package-update' => 'onPostPackageUpdate');
57 }
58 /**
59 * Function to run after a package has been installed
60 */
61 public function onPostPackageInstall(PackageEvent $event)
62 {
63 /** @var \Composer\Package\CompletePackage $package */
64 $package = $event->getOperation()->getPackage();
65 $this->cleanPackage($package);
66 }
67 /**
68 * Function to run after a package has been updated
69 */
70 public function onPostPackageUpdate(PackageEvent $event)
71 {
72 /** @var \Composer\Package\CompletePackage $package */
73 $package = $event->getOperation()->getTargetPackage();
74 $this->cleanPackage($package);
75 }
76 /**
77 * Function to run after a package has been updated
78 *
79 * @param CommandEvent $event
80 */
81 public function onPostInstallUpdateCmd(CommandEvent $event)
82 {
83 /** @var \Composer\Repository\WritableRepositoryInterface $repository */
84 $repository = $this->composer->getRepositoryManager()->getLocalRepository();
85 /** @var \Composer\Package\CompletePackage $package */
86 foreach ($repository->getPackages() as $package) {
87 if ($package instanceof BasePackage) {
88 $this->cleanPackage($package);
89 }
90 }
91 }
92 /**
93 * Clean a package, based on its rules.
94 *
95 * @param BasePackage $package The package to clean
96 * @return bool True if cleaned
97 */
98 protected function cleanPackage(BasePackage $package)
99 {
100 // Only clean 'dist' packages
101 if ($package->getInstallationSource() !== 'dist') {
102 return \false;
103 }
104 $vendorDir = $this->config->get('vendor-dir');
105 $targetDir = $package->getTargetDir();
106 $packageName = $package->getPrettyName();
107 $packageDir = $targetDir ? $packageName . '/' . $targetDir : $packageName;
108 $rules = isset($this->rules[$packageName]) ? $this->rules[$packageName] : null;
109 if (!$rules) {
110 return;
111 }
112 $dir = $this->filesystem->normalizePath(realpath($vendorDir . '/' . $packageDir));
113 if (!is_dir($dir)) {
114 return \false;
115 }
116 foreach ((array) $rules as $part) {
117 // Split patterns for single globs (should be max 260 chars)
118 $patterns = explode(' ', trim($part));
119 foreach ($patterns as $pattern) {
120 try {
121 foreach (glob($dir . '/' . $pattern) as $file) {
122 $this->filesystem->remove($file);
123 }
124 } catch (\Exception $e) {
125 $this->io->write("Could not parse {$packageDir} ({$pattern}): " . $e->getMessage());
126 }
127 }
128 }
129 return \true;
130 }
131 }
132