예제 #1
0
 protected function execute(InputInterface $input, OutputInterface $output)
 {
     try {
         $result = $this->updater->update();
         if ($result) {
             $output->writeln('<info>Victor is sucessfully updated.</info>');
         } else {
             $output->writeln('<info>You are using latest version of Victor no updates needed.</info>');
         }
     } catch (\Exception $e) {
         $output->writeln('<error>Ther is error when update is in progress. Please try it again later.</error>');
         return 255;
     }
 }
예제 #2
0
 /**
  * {@inheritdoc}
  */
 protected function execute(InputInterface $input, OutputInterface $output)
 {
     $io = new DrupalStyle($input, $output);
     $application = $this->getApplication();
     $manifest = $input->getOption('manifest') ?: 'http://drupalconsole.com/manifest.json';
     $currentVersion = $input->getOption('current-version') ?: $application->getVersion();
     $major = $input->getOption('major');
     if (!extension_loaded('Phar') || !\Phar::running(false)) {
         $io->error($this->trans('commands.self-update.messages.not-phar'));
         $io->block($this->trans('commands.self-update.messages.instructions'));
         return 1;
     }
     $io->info(sprintf($this->trans('commands.self-update.messages.check'), $currentVersion));
     $updater = new Updater(null, false);
     $strategy = new ManifestStrategy($currentVersion, $major, $manifest);
     $updater->setStrategyObject($strategy);
     if (!$updater->hasUpdate()) {
         $io->info(sprintf($this->trans('commands.self-update.messages.current-version'), $currentVersion));
         return 0;
     }
     $oldVersion = $updater->getOldVersion();
     $newVersion = $updater->getNewVersion();
     if (!$io->confirm(sprintf($this->trans('commands.self-update.questions.update'), $oldVersion, $newVersion), true)) {
         return 1;
     }
     $io->comment(sprintf($this->trans('commands.self-update.messages.update'), $newVersion));
     $updater->update();
     $io->success(sprintf($this->trans('commands.self-update.messages.success'), $oldVersion, $newVersion));
     // 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;
 }
 protected function execute(InputInterface $input, OutputInterface $output)
 {
     if (PHP_VERSION_ID < 50600) {
         $message = 'Self updating is not available in PHP versions under 5.6.' . "\n";
         $message .= 'The latest version can be found at ' . self::PHAR_URL;
         $output->writeln(sprintf('<error>%s</error>', $message));
         return 1;
     } elseif (Application::VERSION === '@' . 'package_version' . '@') {
         $output->writeln('<error>Self updating has been disabled in source version.</error>');
         return 1;
     }
     $exitCode = 0;
     $updater = new Updater();
     $updater->getStrategy()->setPharUrl(self::PHAR_URL);
     $updater->getStrategy()->setVersionUrl(self::PHAR_VERSION_URL);
     try {
         if ($input->getOption('rollback')) {
             $result = $updater->rollback();
         } else {
             $result = $updater->update();
         }
         if ($result) {
             $new = $updater->getNewVersion();
             $old = $updater->getOldVersion();
             $output->writeln(sprintf('Updated from %s to %s', $old, $new));
         } else {
             $exitCode = 1;
         }
     } catch (Exception $e) {
         $exitCode = 1;
         $output->writeln(sprintf('<error>%s</error>', $e->getMessage()));
     }
     return $exitCode;
 }
 protected function execute(InputInterface $input, OutputInterface $output)
 {
     $logger = new ConsoleLogger($output);
     $updater = new Updater(null, false, Updater::STRATEGY_GITHUB);
     /** @var GithubStrategy $strategy */
     $strategy = $updater->getStrategy();
     $strategy->setPackageName('icehawk/component-template-generator');
     $strategy->setPharName('icehawk-ctg.phar');
     $strategy->setCurrentLocalVersion('@package_version@');
     $stability = $input->getOption('stability');
     $strategy->setStability($stability);
     if ($updater->hasUpdate()) {
         $newVersion = $updater->getNewVersion();
         $logger->info(sprintf('The current stable version available is: %s', $newVersion));
         $logger->info('Updating...');
         if ($updater->update()) {
             $logger->info(sprintf('Successful! You now have version %s installed', $newVersion));
         }
     } elseif (false === $updater->getNewVersion()) {
         $logger->alert('There is no stable version available.');
     } else {
         $logger->info('@package_version@ is the latest stable version.');
     }
     return 0;
 }
 /**
  * @param Updater $updater
  */
 protected function update(Updater $updater)
 {
     $this->output->writeln('Updating...' . PHP_EOL);
     try {
         $result = $updater->update();
         $newVersion = $updater->getNewVersion();
         $oldVersion = $updater->getOldVersion();
         if (strlen($newVersion) == 40) {
             $newVersion = 'dev-' . $newVersion;
         }
         if (strlen($oldVersion) == 40) {
             $oldVersion = 'dev-' . $oldVersion;
         }
         if ($result) {
             $this->output->writeln('<fg=green>Skype has been updated.</fg=green>');
             $this->output->writeln(sprintf('<fg=green>Current version is:</fg=green> <options=bold>%s</options=bold>.', $newVersion));
             $this->output->writeln(sprintf('<fg=green>Previous version was:</fg=green> <options=bold>%s</options=bold>.', $oldVersion));
         } else {
             $this->output->writeln('<fg=green>Skype is currently up to date.</fg=green>');
             $this->output->writeln(sprintf('<fg=green>Current version is:</fg=green> <options=bold>%s</options=bold>.', $oldVersion));
         }
     } catch (\Exception $e) {
         $this->output->writeln(sprintf('Error: <fg=yellow>%s</fg=yellow>', $e->getMessage()));
     }
     $this->output->write(PHP_EOL);
 }
 /**
  * @param InputInterface $input
  * @param OutputInterface $output
  *
  * @return int
  */
 protected function execute(InputInterface $input, OutputInterface $output)
 {
     $logger = new ConsoleLogger($output);
     $updater = new Updater(null, false, Updater::STRATEGY_GITHUB);
     /** @var GithubStrategy $strategy */
     $strategy = $updater->getStrategy();
     $strategy->setPackageName(PharTool::PACKAGE_NAME);
     $strategy->setPharName(PharTool::PHAR_NAME);
     $strategy->setCurrentLocalVersion('@package_version@');
     $stability = $input->getOption('stability');
     $strategy->setStability($stability);
     try {
         if ($updater->hasUpdate()) {
             $newVersion = $updater->getNewVersion();
             $logger->info(sprintf('The current stable version available is: %s', $newVersion));
             $logger->info('Updating...');
             if ($updater->update()) {
                 $logger->info(sprintf('Successful! You now have version %s installed', $newVersion));
             }
         } elseif (false === $updater->getNewVersion()) {
             $logger->alert('There is no stable version available.');
         } else {
             $logger->info('@package_version@ is the latest stable version.');
         }
         return 0;
     } catch (HttpRequestException $e) {
         $logger->alert('Error fetching current version from remote repository.');
         return 1;
     }
 }
예제 #7
0
 /**
  * Execute
  *
  * @param InputInterface $input
  * @param OutputInterface $output
  * @return void
  */
 protected function execute(InputInterface $input, OutputInterface $output)
 {
     $updater = new Updater(null, false);
     $updater->setStrategy(Updater::STRATEGY_GITHUB);
     $strategy = $updater->getStrategy();
     /* @var GithubStrategy $strategy */
     $strategy->setPackageName('TYPO3/Surf');
     $strategy->setPharName('surf.phar');
     $strategy->setCurrentLocalVersion($this->getApplication()->getVersion());
     $stability = $input->getOption('stability');
     if (empty($stability)) {
         // Unstable by default. Should be removed once we have a 2.0.0 final
         $stability = GithubStrategy::UNSTABLE;
     }
     $strategy->setStability($stability);
     if ($input->getOption('check')) {
         $result = $updater->hasUpdate();
         if ($result) {
             $output->writeln(sprintf('The %s build available remotely is: %s', $strategy->getStability() === GithubStrategy::ANY ? 'latest' : 'current ' . $strategy->getStability(), $updater->getNewVersion()));
         } elseif (false === $updater->getNewVersion()) {
             $output->writeln('There are no new builds available.');
         } else {
             $output->writeln(sprintf('You have the current %s build installed.', $strategy->getStability()));
         }
     } elseif ($input->getOption('rollback')) {
         $result = $updater->rollback();
         $result ? $output->writeln('Success!') : $output->writeln('Failure!');
     } else {
         $result = $updater->update();
         $result ? $output->writeln('Updated.') : $output->writeln('No update needed!');
     }
 }
 /**
  * {@inheritdoc}
  */
 protected function execute(InputInterface $input, OutputInterface $output)
 {
     try {
         $result = $this->updater->update();
         if (!$result) {
             $output->writeln('No update needed.');
             return 0;
         }
         $new = $this->updater->getNewVersion();
         $old = $this->updater->getOldVersion();
         $output->writeln(sprintf('Updated from SHA-1 %s to SHA-1 %s. Please run again', $old, $new));
         return 0;
     } catch (\Exception $e) {
         $output->writeln("Unable to update. Please check your connection");
         $this->printException($output, $e);
         return 1;
     }
 }
예제 #9
0
 public function processCommand()
 {
     try {
         echo "\rChecks for updates...";
         $result = $this->updater->update();
         if ($result) {
             $new = $this->updater->getNewVersion();
             $old = $this->updater->getOldVersion();
             printf("\rUpdated from %s to %s.", $old, $new);
             exit(0);
         }
         printf("\rYou are already using last version (%s).", $this->version);
         exit(0);
     } catch (\Exception $e) {
         echo $e->getMessage();
         exit(1);
     }
 }
예제 #10
0
 protected function execute(InputInterface $input, OutputInterface $output)
 {
     $updater = new Updater(null, false);
     $updater->setStrategyObject(new Update($this->getApplication()->getVersion(), true, 'http://fabioneves.github.io/backup-cli/manifest.json'));
     try {
         $result = $updater->update();
         $message = $result ? '<info>Updated successfully!</info>' : 'You already have the latest version.';
         $output->writeln($message);
     } catch (\Exception $e) {
         $output->writeln("<error>{$e->getMessage()}</error>");
         return;
     }
 }
예제 #11
0
 /**
  * Execute Command.
  *
  * @param InputInterface  $consoleInput
  * @param OutputInterface $consoleOutput
  *
  * @return int|null|void
  */
 public function execute(InputInterface $consoleInput, OutputInterface $consoleOutput)
 {
     $updater = new Updater();
     $updater->setStrategy(Updater::STRATEGY_GITHUB);
     $updater->getStrategy()->setPackageName('kriskbx/wyn');
     $updater->getStrategy()->setPharName('wyn.phar');
     $updater->getStrategy()->setCurrentLocalVersion($GLOBALS['wynVersion']);
     try {
         $result = $updater->update();
         $result ? exit('Updated!') : exit('No update needed!');
     } catch (\Exception $e) {
         exit('Well, something happened! Either an oopsie or something involving hackers.');
     }
 }
예제 #12
0
 protected function execute(InputInterface $input, OutputInterface $output)
 {
     $updater = new Updater();
     $updater->setStrategy(Updater::STRATEGY_GITHUB);
     $updater->getStrategy()->setPackageName('relamptk/git-deployer');
     $updater->getStrategy()->setPharName('git-deployer.phar');
     $updater->getStrategy()->setCurrentLocalVersion($this->getApplication()->getVersion());
     $result = $updater->update();
     if ($result) {
         $new = $updater->getNewVersion();
         $output->writeln('<info>Git-Deployer</info> updated to version ' . $new . '.');
     } else {
         $output->writeln('<info>Git-Deployer</info> is already on the latest version!');
     }
 }
예제 #13
0
 protected function execute(InputInterface $input, OutputInterface $output)
 {
     $updater = new Updater(null, false, Updater::STRATEGY_GITHUB);
     $updater->getStrategy()->setPackageName('friendsofphp/pickle');
     $updater->getStrategy()->setPharName(self::PHAR_NAME);
     $updater->getStrategy()->setCurrentLocalVersion($this->getApplication()->getVersion());
     if ($input->getOption('unstable')) {
         $updater->getStrategy()->setStability('unstable');
     }
     if ($updater->update() === false) {
         $output->writeln('<info>Already up-to-date.</info>');
     } else {
         $output->writeln('<info>' . $updater->getLocalPharFileBasename() . ' has been updated!</info>');
     }
 }
예제 #14
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 PuliStrategy();
     $updateStrategy->setStability($this->getStability($args));
     // 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;
 }
예제 #15
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;
 }
 /**
  * @runInSeparateProcess
  */
 public function testUpdatePhar()
 {
     if (!extension_loaded('openssl')) {
         $this->markTestSkipped('This test requires the openssl extension to run.');
     }
     $this->createTestPharAndKey();
     $this->assertEquals('old', $this->getPharOutput($this->tmp . '/old.phar'));
     $updater = new Updater($this->tmp . '/old.phar');
     $updater->setStrategyObject(new GithubTestStrategy());
     $updater->getStrategy()->setPharName('new.phar');
     $updater->getStrategy()->setPackageName('');
     // not used in this test
     $updater->getStrategy()->setCurrentLocalVersion('1.0.0');
     $this->assertTrue($updater->update());
     $this->assertEquals('new', $this->getPharOutput($this->tmp . '/old.phar'));
 }
예제 #17
0
 protected function execute(InputInterface $input, OutputInterface $output)
 {
     $updater = new Updater();
     $updater->getStrategy()->setPharUrl('https://gilbitron.github.io/Handle/handle.phar');
     $updater->getStrategy()->setVersionUrl('https://gilbitron.github.io/Handle/handle.phar.version');
     try {
         $result = $updater->update();
         if (!$result) {
             $output->writeln('<info>No update available</info>');
             return;
         }
         $new = $updater->getNewVersion();
         $old = $updater->getOldVersion();
         $output->writeln(sprintf('<info>Updated from %s to %s</info>', $old, $new));
     } catch (\Exception $e) {
         $output->writeln('<error>' . $e->getMessage() . '</error>');
     }
 }
예제 #18
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;
 }
예제 #19
0
 /**
  * Run the command
  *
  * @param InputInterface  $input
  * @param OutputInterface $output
  */
 protected function execute(InputInterface $input, OutputInterface $output)
 {
     $updater = new Updater(null, false);
     $updater->setStrategyObject(new CurlGithubStrategy());
     $updater->getStrategy()->setPackageName('inetprocess/sugarcli');
     $updater->getStrategy()->setPharName('sugarcli.phar');
     $updater->getStrategy()->setCurrentLocalVersion($this->getApplication()->getVersion());
     if ($input->getOption('rollback')) {
         $updater->rollback();
     } else {
         $result = $updater->update();
         if ($result) {
             $output->writeln('Successfuly updated');
         } else {
             $output->writeln('Already up to date');
         }
     }
 }
 /**
  * {@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);
 }
예제 #21
0
 /**
  * @param InputInterface  $input
  * @param OutputInterface $output
  *
  * @return void
  * @throws Exception
  */
 protected function execute(InputInterface $input, OutputInterface $output)
 {
     $io = new SymfonyStyle($input, $output);
     $updater = new Updater();
     $strategy = $updater->getStrategy();
     if ($strategy instanceof ShaStrategy) {
         $strategy->setPharUrl('http://lucascherifi.github.io/gitaski/gitaski.phar');
         $strategy->setVersionUrl('http://lucascherifi.github.io/gitaski/gitaski.phar.version');
     }
     $result = $updater->update();
     if (!$result) {
         $io = new SymfonyStyle($input, $output);
         $io->success('No update needed.');
         return;
     }
     $new = $updater->getNewVersion();
     $old = $updater->getOldVersion();
     $io->success(sprintf('Updated from %s to %s', $old, $new));
     return;
 }
예제 #22
0
 protected function execute(InputInterface $input, OutputInterface $output)
 {
     $manifestUrl = $input->getOption('manifest') ?: 'https://platform.sh/cli/manifest.json';
     $currentVersion = $input->getOption('current-version') ?: $this->getApplication()->getVersion();
     $allowMajor = $input->getOption('major');
     $allowUnstable = $input->getOption('unstable');
     if (!extension_loaded('Phar') || !($localPhar = \Phar::running(false))) {
         $this->stdErr->writeln('This instance of the CLI was not installed as a Phar archive.');
         // Instructions for users who are running a global Composer install.
         if (file_exists(CLI_ROOT . '/../../autoload.php')) {
             $this->stdErr->writeln("Update using:\n\n  composer global update");
             $this->stdErr->writeln("\nOr you can switch to a Phar install (<options=bold>recommended</>):\n");
             $this->stdErr->writeln("  composer global remove platformsh/cli");
             $this->stdErr->writeln("  curl -sS https://platform.sh/cli/installer | php\n");
         }
         return 1;
     }
     $this->stdErr->writeln(sprintf('Checking for updates (current version: <info>%s</info>)', $currentVersion));
     $updater = new Updater(null, false);
     $strategy = new ManifestStrategy($currentVersion, $manifestUrl, $allowMajor, $allowUnstable);
     $updater->setStrategyObject($strategy);
     if (!$updater->hasUpdate()) {
         $this->stdErr->writeln('No updates found');
         return 0;
     }
     $newVersionString = $updater->getNewVersion();
     /** @var \Platformsh\Cli\Helper\PlatformQuestionHelper $questionHelper */
     $questionHelper = $this->getHelper('question');
     if (!$questionHelper->confirm(sprintf('Update to version %s?', $newVersionString), $input, $output)) {
         return 1;
     }
     $this->stdErr->writeln(sprintf('Updating to version %s', $newVersionString));
     $updater->update();
     $this->stdErr->writeln("Successfully updated to version <info>{$newVersionString}</info>");
     // 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;
 }
예제 #23
0
 /**
  * executes the command
  *
  * @return int
  */
 protected function handle()
 {
     $updater = new Updater(null, false);
     /** @var \Humbug\SelfUpdate\Strategy\ShaStrategy $strategy */
     $strategy = $updater->getStrategy();
     $strategy->setPharUrl(self::UPDATE_PHAR_URL);
     $strategy->setVersionUrl(self::UPDATE_VERSION_URL);
     try {
         $result = $updater->update();
         if (!$result) {
             // No update needed!
             return 0;
         }
         $new = $updater->getNewVersion();
         $old = $updater->getOldVersion();
         $this->info(sprintf('Updated from %s to %s', $old, $new));
         return 0;
     } catch (\Exception $e) {
         // Report an error!
         $this->error($e->getMessage());
         return 1;
     }
 }
예제 #24
0
 /**
  * Execute the self-update command
  *
  * @param  InputInterface  $input
  * @param  OutputInterface $output
  * @return void
  */
 protected function execute(InputInterface $input, OutputInterface $output)
 {
     $updater = new Updater(null, false);
     $updater->setStrategy(Updater::STRATEGY_GITHUB);
     $updater->getStrategy()->setPackageName('studioforty9/modrepo');
     $updater->getStrategy()->setPharName('modrepo.phar');
     $updater->getStrategy()->setCurrentLocalVersion($this->getApplication()->getVersion());
     $updater->getStrategy()->setStability('stable');
     try {
         $result = $updater->update();
         if ($result) {
             $output->writeln('<fg=green>Modrepo has been updated.</fg=green>');
             $output->writeln(sprintf('<fg=green>Current version is:</fg=green> <options=bold>%s</options=bold>.', $updater->getNewVersion()));
             $output->writeln(sprintf('<fg=green>Previous version was:</fg=green> <options=bold>%s</options=bold>.', $updater->getOldVersion()));
         } else {
             $output->writeln('<fg=green>Modrepo is currently up to date.</fg=green>');
             $output->writeln(sprintf('<fg=green>Current version is:</fg=green> <options=bold>%s</options=bold>.', $updater->getOldVersion()));
         }
     } catch (\Exception $e) {
         $output->writeln(sprintf('Error: <fg=yellow>%s</fg=yellow>', $e->getMessage()));
     }
     $output->write(PHP_EOL);
 }
예제 #25
0
 /**
  * {@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;
 }
예제 #26
0
 function exec()
 {
     try {
         $updater = new Updater();
         //$updater->setStrategy(Updater::STRATEGY_GITHUB); //use packagist.org
         //$updater->getStrategy()->setStability('any');
         //$updater->getStrategy()->setPackageName('redcatphp/artist');
         //$updater->getStrategy()->setPharName('artist.phar');
         //$updater->getStrategy()->setCurrentLocalVersion('@package_version@');
         $updater->getStrategy()->setPharUrl('https://raw.githubusercontent.com/redcatphp/artist/master/artist.phar');
         $updater->getStrategy()->setVersionUrl('https://raw.githubusercontent.com/redcatphp/artist/master/artist.version');
         $result = $updater->update();
         if (!$result) {
             $this->output->writeln('allready up to date');
             return;
         }
         $new = $updater->getNewVersion();
         $old = $updater->getOldVersion();
         printf('Updated from %s to %s', $old, $new);
     } catch (FilesystemException $e) {
         echo "you must run this command as sudo (root)\n";
         throw $e;
     }
 }
 /**
  * @param Route $route
  * @param Console $console
  * @return int
  */
 public function __invoke(Route $route, Console $console)
 {
     if (version_compare(\PHP_VERSION, '5.6', 'lt')) {
         $console->writeLine(sprintf('self-update requires PHP >=5.6 (version %s was used); aborting', \PHP_VERSION), Color::RED);
         exit(1);
     }
     $updater = new Updater();
     $updater->getStrategy()->setPharUrl(self::URL_PHAR);
     $updater->getStrategy()->setVersionUrl(self::URL_VERSION);
     try {
         $result = $updater->update();
         if (!$result) {
             $console->writeLine('No updated needed!', Color::GREEN);
             return 0;
         }
         $new = $updater->getNewVersion();
         $old = $updater->getOldVersion();
         $console->writeLine(sprintf('Updated from %s to %s', $old, $new), Color::GREEN);
         return 0;
     } catch (Exception $e) {
         $console->writeLine('[ERROR] Could not update', Color::RED);
         return 1;
     }
 }
예제 #28
0
 protected function update(Updater $updater)
 {
     $this->output->writeln('Updating...' . PHP_EOL);
     try {
         $result = $updater->update();
         $newVersion = $updater->getNewVersion();
         $oldVersion = $updater->getOldVersion();
         if (strlen($newVersion) == 40) {
             $newVersion = 'dev-' . $newVersion;
         }
         if (strlen($oldVersion) == 40) {
             $oldVersion = 'dev-' . $oldVersion;
         }
         if ($result) {
             $this->output->writeln('<fg=green>Humbug has been updated.</fg=green>');
             $this->output->writeln(sprintf('<fg=green>Current version is:</fg=green> <options=bold>%s</options=bold>.', $newVersion));
             $this->output->writeln(sprintf('<fg=green>Previous version was:</fg=green> <options=bold>%s</options=bold>.', $oldVersion));
         } else {
             $this->output->writeln('<fg=green>Humbug is currently up to date.</fg=green>');
             $this->output->writeln(sprintf('<fg=green>Current version is:</fg=green> <options=bold>%s</options=bold>.', $oldVersion));
         }
     } catch (\Exception $e) {
         $this->output->writeln(sprintf('Error: <fg=yellow>%s</fg=yellow>', $e->getMessage()));
     }
     $this->output->write(PHP_EOL);
     $this->output->writeln('You can also select update stability using --dev, --pre (alpha/beta/rc) or --stable.');
 }
예제 #29
0
 protected function update(Updater $updater)
 {
     $this->io->title("Updating Spaceport");
     try {
         $result = $updater->update();
         $newVersion = $updater->getNewVersion();
         $oldVersion = $updater->getOldVersion();
         if (strlen($newVersion) == 40) {
             $newVersion = 'dev-' . $newVersion;
         }
         if (strlen($oldVersion) == 40) {
             $oldVersion = 'dev-' . $oldVersion;
         }
         if ($result) {
             $this->io->success("Spaceport has been updated from {$oldVersion} to {$newVersion}");
         } else {
             $this->io->success("Spaceport is currently up to date at {$oldVersion}");
         }
     } catch (\Exception $e) {
         $this->io->error("Error: " . $e->getMessage());
     }
     $this->io->note('You can also select update stability using --dev, --pre (alpha/beta/rc) or --stable.');
 }
예제 #30
0
파일: Tg.php 프로젝트: twhiston/tg
 public function selfUpdate()
 {
     if (!extension_loaded('Phar') || !\Phar::running(false)) {
         $this->yell('Can only update Phar version. Update via a vcs');
         return;
     }
     $updater = new Updater(null, false);
     $updater->setStrategyObject(new BitBucketStrategy($updater));
     //Yep, that sucks
     $updater->getStrategy()->setPackageName('twhiston/tg');
     $updater->getStrategy()->setPharName('tg.phar');
     $updater->getStrategy()->setCurrentLocalVersion(TgApp::VERSION);
     try {
         $this->yell('Updating', 100, 'green');
         $result = $updater->update();
         if (!$result) {
             $this->yell('You have the most recent version', 100, 'yellow');
         }
     } catch (\Exception $e) {
         $this->yell('Error updating: ' . $e->getMessage(), 100, 'red');
     }
 }