/** * @param InputInterface $input * @return RootNode * @throws Exception */ protected function getConfig(InputInterface $input) : RootNode { $filename = $input->getOption('file'); if ($filename != 'php://stdout' && !file_exists($filename)) { @touch($filename); } if ($filename != 'php://stdout' && file_exists($filename)) { if (!is_writable($filename)) { throw new Exception('Given filename is not writable!'); } } if ($filename != 'php://stdout' && file_exists($filename)) { $parser = new Parser(); return $parser->parseFile($filename); } return new RootNode(); }