/**
  * Rewrite this function to use curl
  */
 public function download(Updater $updater)
 {
     if (version_compare(PHP_VERSION, '5.6', '>=')) {
         return parent::download($updater);
     }
     // Hack we need access to private property $remoteUrl
     $reflex = new \ReflectionClass('Humbug\\SelfUpdate\\Strategy\\GithubStrategy');
     $property = $reflex->getProperty('remoteUrl');
     $property->setAccessible(true);
     $remoteUrl = $property->getValue($this);
     $content = self::getCurlContent($remoteUrl);
     file_put_contents($updater->getTempPharFile(), $content);
 }
Esempio n. 2
0
 /**
  * Handles the "self-update" command.
  *
  * @param Args $args The console arguments.
  * @param IO   $io   The I/O.
  *
  * @return int The status code.
  */
 public function handle(Args $args, IO $io)
 {
     $updateStrategy = new GithubStrategy();
     $updateStrategy->setPackageName('puli/cli');
     $updateStrategy->setStability($this->getStability($args));
     $updateStrategy->setPharName('puli.phar');
     $updateStrategy->setCurrentLocalVersion(PuliApplicationConfig::VERSION);
     $updater = new Updater();
     $updater->setStrategyObject($updateStrategy);
     if ($updater->update()) {
         $io->writeLine(sprintf('Updated from version %s to version %s.', $updater->getOldVersion(), $updater->getNewVersion()));
     } else {
         $io->writeLine(sprintf('Version %s is the latest version. No update required.', $updater->getOldVersion()));
     }
     return 0;
 }
Esempio n. 3
0
 /**
  * Handles the "self-update" command.
  *
  * @param Args $args The console arguments.
  * @param IO   $io   The I/O.
  *
  * @return int The status code.
  */
 public function handle(Args $args, IO $io)
 {
     $updateStrategy = new GithubStrategy();
     $updateStrategy->setPackageName('puli/cli');
     $updateStrategy->setStability($this->getStability($args));
     $updateStrategy->setPharName('puli.phar');
     $updateStrategy->setCurrentLocalVersion(PuliApplicationConfig::VERSION);
     // false: disable signed releases, otherwise the updater will look for
     // a *.pubkey file for the PHAR
     $updater = new Updater(null, false);
     $updater->setStrategyObject($updateStrategy);
     if ($updater->update()) {
         $io->writeLine(sprintf('Updated from version %s to version %s.', $updater->getOldVersion(), $updater->getNewVersion()));
         return 0;
     }
     $io->writeLine(sprintf('Version %s is the latest version. No update required.', $updater->getOldVersion()));
     return 0;
 }
 /**
  * {@inheritdoc}
  */
 protected function execute(InputInterface $input, OutputInterface $output)
 {
     $output = new DrupalStyle($input, $output);
     $application = $this->getApplication();
     $pharName = 'drupal.phar';
     $updateStrategy = new GithubStrategy();
     $updateStrategy->setPackageName('drupal/console');
     $updateStrategy->setStability(GithubStrategy::STABLE);
     $updateStrategy->setPharName($pharName);
     $updateStrategy->setCurrentLocalVersion($application::VERSION);
     $updater = new Updater(null, false);
     $updater->setStrategyObject($updateStrategy);
     if ($updater->update()) {
         $output->success(sprintf($this->trans('commands.self-update.messages.success'), $updater->getOldVersion(), $pharName));
     } else {
         $output->warning(sprintf($this->trans('commands.self-update.messages.current-version'), $updater->getOldVersion()));
     }
     $this->getApplication()->setDispatcher(null);
 }
 /**
  * {@inheritdoc}
  */
 protected function execute(InputInterface $input, OutputInterface $output)
 {
     $updateStrategy = new GithubStrategy();
     $updateStrategy->setPackageName('drupal/console');
     $updateStrategy->setStability(GithubStrategy::STABLE);
     $updateStrategy->setPharName('console.phar');
     $updateStrategy->setCurrentLocalVersion(Application::VERSION);
     $updater = new Updater(null, false);
     $updater->setStrategyObject($updateStrategy);
     if ($updater->update()) {
         $output->writeln(sprintf($this->trans('commands.self-update.messages.success'), $updater->getOldVersion(), $updater->getNewVersion()));
     } else {
         $output->writeln(sprintf($this->trans('commands.self-update.messages.current-version'), $updater->getOldVersion()));
     }
     // Recommended by Commerce Guys CLI
     // https://github.com/platformsh/platformsh-cli/blob/7a122d3f3226d5e6ed0a0b74803158c51b31ad5e/src/Command/Self/SelfUpdateCommand.php#L72-L77
     // Errors appear if new classes are instantiated after this stage
     // (namely, Symfony's ConsoleTerminateEvent). This suggests PHP
     // can't read files properly from the overwritten Phar, or perhaps it's
     // because the autoloader's name has changed. We avoid the problem by
     // terminating now.
     exit;
 }
Esempio n. 6
0
 private function selfUpdate()
 {
     $phar = \Phar::running(false);
     if ($phar === '') {
         $this->stdio->errln('<<red>>Self-updating only works when running the PHAR version of phormat.<<reset>>');
         exit(Status::UNAVAILABLE);
     }
     $updater = new Updater($phar, false);
     $strategy = new GithubStrategy();
     $strategy->setPackageName('nochso/phormat');
     $strategy->setPharName('phormat.phar');
     $strategy->setCurrentLocalVersion($this->version->getVersion());
     $updater->setStrategyObject($strategy);
     try {
         if ($updater->update()) {
             $this->stdio->success(sprintf('Successfully updated phormat from <<yellow>>%s<<reset>> to <<yellow>>%s<<reset>>.', $updater->getOldVersion(), $updater->getNewVersion()));
             exit(Status::SUCCESS);
         }
         $this->stdio->neutral('There is no update available.');
         exit(Status::SUCCESS);
     } catch (\Exception $e) {
         $this->stdio->error(sprintf("Self-update failed:\n%s<<reset>>", $e->getMessage()));
     }
 }