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();