From 421c9453a4575fab28e719ed84e5b82da277c171 Mon Sep 17 00:00:00 2001 From: David Neilsen Date: Wed, 4 Jun 2014 19:32:28 +1200 Subject: [PATCH 1/3] Add clear cache command. --- src/Composer/Command/ClearCacheCommand.php | 65 ++++++++++++++++++++++ src/Composer/Console/Application.php | 1 + 2 files changed, 66 insertions(+) create mode 100644 src/Composer/Command/ClearCacheCommand.php diff --git a/src/Composer/Command/ClearCacheCommand.php b/src/Composer/Command/ClearCacheCommand.php new file mode 100644 index 000000000..5ebfe8fa7 --- /dev/null +++ b/src/Composer/Command/ClearCacheCommand.php @@ -0,0 +1,65 @@ + + * Jordi Boggiano + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Composer\Command; + +use Composer\Cache; +use Composer\Factory; +use Composer\Installer; +use Composer\Plugin\CommandEvent; +use Composer\Plugin\PluginEvents; +use Symfony\Component\Console\Input\InputInterface; +use Symfony\Component\Console\Input\InputOption; +use Symfony\Component\Console\Input\InputArgument; +use Symfony\Component\Console\Output\OutputInterface; + +/** + * @author David Neilsen + */ +class ClearCacheCommand extends Command +{ + protected function configure() + { + $this + ->setName('clear-cache') + ->setAliases(array('clearcache')) + ->setDescription('Clears composer\'s interal package cache.') + ->setHelp(<<clear-cache deletes all cached packages from composer's +cache directory. +EOT + ) + ; + } + + protected function execute(InputInterface $input, OutputInterface $output) + { + $config = Factory::createConfig(); + $io = $this->getIO(); + + $cachePath = realpath($config->get('cache-repo-dir')); + if (!$cachePath) { + $io->write('Cache directory does not exist.'); + return; + } + + $cache = new Cache($io, $cachePath); + if (!$cache->isEnabled()) { + $io->write('Cache is not enabled.'); + return; + } + + $io->write('Clearing cache in: '.$cachePath.''); + $cache->gc(0, 0); + $io->write('Cache cleared.'); + } +} diff --git a/src/Composer/Console/Application.php b/src/Composer/Console/Application.php index da5d4ff20..12da0c2da 100644 --- a/src/Composer/Console/Application.php +++ b/src/Composer/Console/Application.php @@ -227,6 +227,7 @@ class Application extends BaseApplication $commands[] = new Command\RunScriptCommand(); $commands[] = new Command\LicensesCommand(); $commands[] = new Command\GlobalCommand(); + $commands[] = new Command\ClearCacheCommand(); if ('phar:' === substr(__FILE__, 0, 5)) { $commands[] = new Command\SelfUpdateCommand(); From 075c85dd48a2806e4ab2c81880af07af8c620bbf Mon Sep 17 00:00:00 2001 From: David Neilsen Date: Wed, 4 Jun 2014 21:25:43 +1200 Subject: [PATCH 2/3] Fix typo in src/Composer/Command/ClearCacheCommand.php --- src/Composer/Command/ClearCacheCommand.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Composer/Command/ClearCacheCommand.php b/src/Composer/Command/ClearCacheCommand.php index 5ebfe8fa7..ca229b662 100644 --- a/src/Composer/Command/ClearCacheCommand.php +++ b/src/Composer/Command/ClearCacheCommand.php @@ -32,7 +32,7 @@ class ClearCacheCommand extends Command $this ->setName('clear-cache') ->setAliases(array('clearcache')) - ->setDescription('Clears composer\'s interal package cache.') + ->setDescription('Clears composer\'s internal package cache.') ->setHelp(<<clear-cache deletes all cached packages from composer's cache directory. From 7fe342699198117dbe990dcf707af5d67bc13161 Mon Sep 17 00:00:00 2001 From: David Neilsen Date: Wed, 4 Jun 2014 21:28:41 +1200 Subject: [PATCH 3/3] Clean up unused 'use' statements --- src/Composer/Command/ClearCacheCommand.php | 5 ----- 1 file changed, 5 deletions(-) diff --git a/src/Composer/Command/ClearCacheCommand.php b/src/Composer/Command/ClearCacheCommand.php index ca229b662..f49b00bc3 100644 --- a/src/Composer/Command/ClearCacheCommand.php +++ b/src/Composer/Command/ClearCacheCommand.php @@ -14,12 +14,7 @@ namespace Composer\Command; use Composer\Cache; use Composer\Factory; -use Composer\Installer; -use Composer\Plugin\CommandEvent; -use Composer\Plugin\PluginEvents; use Symfony\Component\Console\Input\InputInterface; -use Symfony\Component\Console\Input\InputOption; -use Symfony\Component\Console\Input\InputArgument; use Symfony\Component\Console\Output\OutputInterface; /**