boardImportCommandService->getAllowedImportSystems(); $names = array_map(function ($name) { return '"' . $name . '"'; }, array_column($allowedSystems, 'internalName')); $this ->setName('deck:import') ->setDescription('Import data') ->addOption( 'system', null, InputOption::VALUE_REQUIRED, 'Source system for import. Available options: ' . implode(', ', $names) . '.', 'DeckJson', ) ->addOption( 'config', null, InputOption::VALUE_REQUIRED, 'Configuration json file.', null ) ->addOption( 'data', null, InputOption::VALUE_REQUIRED, 'Data file to import.', 'data.json' ) ->addArgument( 'file', InputArgument::OPTIONAL, 'File to import', ) ; } /** * @param InputInterface $input * @param OutputInterface $output * * @return int */ protected function execute(InputInterface $input, OutputInterface $output): int { $this ->boardImportCommandService ->setInput($input) ->setOutput($output) ->setCommand($this) ->import(); $output->writeln('Done!'); return 0; } }