* 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 Symfony\Component\Console\Input\InputInterface; 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 internal 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(); $cachePaths = array( $config->get('cache-dir'), $config->get('cache-files-dir'), $config->get('cache-repo-dir'), $config->get('cache-vcs-dir'), ); foreach ($cachePaths as $cachePath) { $cachePath = realpath($cachePath); 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.'); } }