protected function execute(InputInterface $input, OutputInterface $output) { $manifest = $input->getOption('manifest') ?: 'https://platform.sh/cli/manifest.json'; $currentVersion = $input->getOption('current-version') ?: $this->getApplication()->getVersion(); if (extension_loaded('Phar') && !($localPhar = \Phar::running(false))) { $this->stdErr->writeln('This instance of the CLI was not installed as a Phar archive.'); if (file_exists(CLI_ROOT . '/../../autoload.php')) { $this->stdErr->writeln('Update using: <info>composer global update</info>'); } return 1; } $manager = new Manager(Manifest::loadFile($manifest)); if (isset($localPhar)) { $manager->setRunningFile($localPhar); } $onlyMinor = !$input->getOption('major'); $updated = $manager->update($currentVersion, $onlyMinor); if ($updated) { $this->stdErr->writeln("Successfully updated"); $localPhar = $manager->getRunningFile(); passthru('php ' . escapeshellarg($localPhar) . ' --version'); } else { $this->stdErr->writeln("No updates found. The Platform.sh CLI is up-to-date."); } return 0; }
/** * Updates current version. * * @param Manager $manager * @param string $version * @param bool|null $allowMajor * @param bool|null $allowPreRelease * @param OutputInterface $output * * @return void */ private function updateCurrentVersion(Manager $manager, $version, $allowMajor, $allowPreRelease, OutputInterface $output) { if ($manager->update($version, $allowMajor, $allowPreRelease)) { $output->writeln('<info>Updated to latest version.</info>'); } else { $output->writeln('<comment>Already up-to-date.</comment>'); } }
/** * Executes the current command. * * @param InputInterface $input An InputInterface instance. * @param OutputInterface $output An OutputInterface instance. * * @return int */ protected function execute(InputInterface $input, OutputInterface $output) { $application = $this->getApplication(); $manifest = Manifest::loadFile(self::MANIFEST_FILE); $manager = new Manager($manifest); $manager->update($application->getVersion(), true); return 0; }
/** * Execute command * * @param InputInterface $input Input * @param OutputInterface $output Output * * @return int|null|void * * @throws Exception */ protected function execute(InputInterface $input, OutputInterface $output) { if ('phar://' !== substr(__DIR__, 0, 7)) { $output->writeln('<error>Self-update is available only for PHAR version.</error>'); return 1; } $manager = new Manager(Manifest::loadFile(self::MANIFEST_FILE)); $manager->update($this->getApplication()->getVersion(), true); }
/** * {@inheritdoc} */ protected function execute(InputInterface $input, OutputInterface $output) { $manager = new Manager(Manifest::loadFile(self::DRUPAL_CONSOLE_MANIFEST)); if ($manager->update($this->getApplication()->getVersion(), true)) { $output->writeln($this->trans('commands.self-update.messages.success')); } else { $output->writeln(sprintf($this->trans('commands.self-update.messages.current-version'), $this->getApplication()->getVersion())); } }
/** * @param \Peanut\Console\Application $app */ public function execute(\Peanut\Console\Application $app) { $manager = new Manager($manifest = Manifest::loadFile('https://raw.githubusercontent.com/yejune/bootapp/master/manifest.json')); $result = $manager->update($app->getApplicationVersion(), true, true); if ($result) { $this->message('Update successful!'); } else { $this->message('Already up-to-date.'); } }
protected function execute(InputInterface $input, OutputInterface $output) { $output->writeln('Update is currently broken, debug info follows'); $manager = new Manager(Manifest::loadFile(self::MANIFEST_FILE)); $output->writeln('Looking for updates...'); $currentVersion = $this->getApplication()->getVersion(); if ($manager->update($currentVersion, true)) { $output->writeln('<info>Updated to latest version</info>'); } else { $output->writeln('<comment>Already up-to-date.</comment>'); } }
/** * Execute the command. * * @param InputInterface $input * @param OutputInterface $output */ protected function execute(InputInterface $input, OutputInterface $output) { $manager = new Manager(Manifest::loadFile(self::MANIFEST_FILE)); if ($manager->update($this->getApplication()->getVersion(), true)) { $output->writeln(''); $output->writeln($this->messages->translator->trans('update.command.was.updated')); $output->writeln(''); } else { $output->writeln(''); $output->writeln($this->messages->translator->trans('update.command.already.updated', ['version' => $this->getApplication()->getVersion()])); $output->writeln(''); } }
protected function execute(InputInterface $input, OutputInterface $output) { if (!Application::isInstalledAsPhar()) { $output->writeln('<error>Self-update is available only for PHAR version.</error>'); return 1; } $manager = new Manager(Manifest::loadFile(Application::MANIFEST_FILE)); if ($manager->update($this->getApplication()->getVersion(), true)) { $output->writeln(sprintf('<info>Application was successfully updated</info>')); } else { $output->writeln(sprintf('<error>Updating failed or you already have latest version</error>')); } }
/** * Perform a self-update on the phar file * * @param Route $route * @param Console $console * @return int */ public function __invoke(Route $route, Console $console) { $manifest = UpdateManifest::loadFile(self::MANIFEST_FILE); $manager = new UpdateManager($manifest); if (!$manager->update($this->version, true, true)) { $console->writeLine('No updates available.', Color::YELLOW); return 0; } $version = new Version($this->version); $update = $manifest->findRecent($version); $console->write('Updated to version '); $console->writeLine($update->getVersion(), Color::GREEN); return 0; }
/** * {@inheritdoc} */ protected function execute(InputInterface $input, OutputInterface $output) { $manifest = Manifest::loadFile(self::MANIFEST_FILE); $currentVersion = Parser::toVersion($this->getApplication()->getVersion()); $update = $manifest->findRecent($currentVersion, true); if (false === $update instanceof Update) { $output->writeln(sprintf('You are already using the latest version: <info>%s</info>', $currentVersion)); return 0; } $output->writeln(sprintf('Updating to version <info>%s</info>', $update->getVersion())); $manager = new Manager($manifest); $manager->update($this->getApplication()->getVersion(), true); $output->writeln(sprintf('SHA1 verified <info>%s</info>', $update->getSha1())); }
/** * {@inheritdoc} */ protected function execute(InputInterface $input, OutputInterface $output) { $output->writeln('Looking for updates...'); try { $manager = new Manager(Manifest::loadFile(self::MANIFEST_FILE)); } catch (FileException $e) { return $output->writeln('<error>Unable to search for updates</error>'); } $currentVersion = trim($this->getApplication()->getVersion(), 'v'); $allowMajor = $input->getOption('major'); if ($manager->update($currentVersion, $allowMajor)) { $output->writeln('<info>Updated to latest version</info>'); } else { $output->writeln('<comment>Already up-to-date</comment>'); } }
/** * @param InputInterface $input * @param OutputInterface $output * @return int * @SuppressWarnings(PHPMD.UnusedFormalParameter) */ protected function execute(InputInterface $input, OutputInterface $output) { try { $manifest = Manifest::loadFile(self::MANIFEST_FILE); $manager = new Manager($manifest); } catch (FileException $e) { $output->writeln('<error>Unable to search for updates</error>'); return 1; } $currentVersion = $this->getApplication()->getVersion(); if ($manager->update($currentVersion, true)) { $output->writeln('<info>Updated to latest version</info>'); } else { $output->writeln('<comment>Already up-to-date</comment>'); } }
protected function execute(InputInterface $input, OutputInterface $output) { $output->writeln('Looking for updates...'); try { $manager = new Manager(Manifest::loadFile(self::MANIFEST_FILE)); } catch (FileException $e) { if ($output->getVerbosity() === OutputInterface::VERBOSITY_DEBUG) { $output->writeln('<error>' . $e->getMessage() . '</error>'); } $output->writeln('<error>Unable to search for updates</error>'); return 1; } if ($manager->update($this->getApplication()->getVersion(), true)) { $output->writeln('<info>Updated to latest version</info>'); } else { $output->writeln('<comment>Already up-to-date</comment>'); } return 0; }
public function update() { $manager = new Manager(Manifest::loadFile(self::MANIFEST_FILE)); if ($manager->update($this->getApplication()->getVersion(), true)) { $this->out('Updated to latest version!', 'success'); } else { $this->out('mysqldumper up-to-date', 'warning'); } }
/** * @param \Symfony\Component\Console\Input\InputInterface $input * @param \Symfony\Component\Console\Output\OutputInterface $output */ protected function execute(InputInterface $input, OutputInterface $output) { $manager = new Manager(Manifest::loadFile(self::MANIFEST_FILE)); $manager->update($this->getApplication()->getVersion()); }
/** * @param string $currentVersion * @param Manager $manager * @param bool $lockMajor * @param bool $allowPreRelease * * @return string */ private function getNewVersion($currentVersion, Manager $manager, $lockMajor = false, $allowPreRelease = false) { $newVersionObject = $manager->getManifest()->findRecent(Parser::toVersion($currentVersion), $lockMajor, $allowPreRelease)->getVersion(); $newVersion = sprintf('%s.%s', $newVersionObject->getMajor(), implode('.', array_filter([$newVersionObject->getMinor(), $newVersionObject->getPatch()]))); return $newVersion; }
/** * Sets the update manifest. * * @param Manifest $manifest The manifest. */ public function __construct(Manifest $manifest) { parent::__construct($manifest); }
public function testUpdateNone() { $manager = new Manager(new Manifest(array(new Update('new.phar', 'test', 'test', Version::create('2.0.1'))))); $manager->setRunningFile($this->createFile()); $this->assertFalse($manager->update('1.0.0', true)); }