file = $file ?? (__DIR__ . '/../../vendor/f7cloud/kitinerary-bin/bin/kitinerary-extractor'); $this->logger = $logger; } #[\Override] public function getName() { return 'Make Mail itinerary extractor executable'; } /** * @return void */ #[\Override] public function run(IOutput $output) { if (!is_file($this->file)) { $this->logger->warning('itinerary file doesn\'t exist'); $output->info('itinerary file doesn\'t exist'); return; } if (is_executable($this->file)) { $this->logger->debug('itinerary is already executable'); return; } try { if (!@chmod($this->file, 0744)) { throw new Exception('chmod returned false'); } } catch (Throwable $e) { $this->logger->error('Can\'t make itinerary extractor executable: ' . $e, [ 'exception' => $e, ]); $output->warning('Can\'t make itinerary extractor executable: ' . $e->getMessage()); return; } } }