Spaces:
No application file
No application file
namespace Mautic\CoreBundle\Command; | |
use Mautic\CoreBundle\Helper\UpdateHelper; | |
use Symfony\Component\Console\Command\Command; | |
use Symfony\Component\Console\Input\InputInterface; | |
use Symfony\Component\Console\Output\OutputInterface; | |
use Symfony\Contracts\Translation\TranslatorInterface; | |
/** | |
* CLI Command to fetch application updates. | |
*/ | |
class FindUpdatesCommand extends Command | |
{ | |
public function __construct( | |
private TranslatorInterface $translator, | |
private UpdateHelper $updateHelper | |
) { | |
parent::__construct(); | |
} | |
protected function configure() | |
{ | |
$this->setName('mautic:update:find') | |
->setHelp(<<<'EOT' | |
The <info>%command.name%</info> command checks for updates for the Mautic application. | |
<info>php %command.full_name%</info> | |
EOT | |
); | |
} | |
protected function execute(InputInterface $input, OutputInterface $output): int | |
{ | |
$updateData = $this->updateHelper->fetchData(true); | |
if ($updateData['error']) { | |
$output->writeln('<error>'.$this->translator->trans($updateData['message']).'</error>'); | |
} elseif ('mautic.core.updater.running.latest.version' == $updateData['message']) { | |
$output->writeln('<info>'.$this->translator->trans($updateData['message']).'</info>'); | |
} else { | |
$output->writeln($this->translator->trans($updateData['message'], ['%version%' => $updateData['version'], '%announcement%' => $updateData['announcement']])); | |
$output->writeln($this->translator->trans('mautic.core.updater.cli.update')); | |
} | |
return Command::SUCCESS; | |
} | |
protected static $defaultDescription = 'Fetches updates for Mautic'; | |
} | |