12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- <?php
- /*
- * This file is part of Composer.
- *
- * (c) Nils Adermann <naderman@naderman.de>
- * Jordi Boggiano <j.boggiano@seld.be>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
- namespace Composer\Command;
- use Composer\Composer;
- use Composer\Util\StreamContextFactory;
- use Symfony\Component\Console\Input\InputInterface;
- use Symfony\Component\Console\Output\OutputInterface;
- /**
- * @author Igor Wiedler <igor@wiedler.ch>
- */
- class SelfUpdateCommand extends Command
- {
- protected function configure()
- {
- $this
- ->setName('self-update')
- ->setDescription('Updates composer.phar to the latest version.')
- ->setHelp(<<<EOT
- The <info>self-update</info> command checks getcomposer.org for newer
- versions of composer and if found, installs the latest.
- <info>php composer.phar self-update</info>
- EOT
- )
- ;
- }
- protected function execute(InputInterface $input, OutputInterface $output)
- {
- $ctx = StreamContextFactory::getContext();
- $latest = trim(file_get_contents('http://getcomposer.org/version', false, $ctx));
- if (Composer::VERSION !== $latest) {
- $output->writeln(sprintf("Updating to version <info>%s</info>.", $latest));
- $remoteFilename = 'http://getcomposer.org/composer.phar';
- $localFilename = $_SERVER['argv'][0];
- copy($remoteFilename, $localFilename, $ctx);
- } else {
- $output->writeln("<info>You are using the latest composer version.</info>");
- }
- }
- }
|