protected function initialize(InputInterface $input, OutputInterface $output) { // logger $logger = $this->getApplication()->getLogger(); if (!isset($logger)) { $verbosityLevelMap = [LogLevel::NOTICE => OutputInterface::VERBOSITY_NORMAL, LogLevel::INFO => OutputInterface::VERBOSITY_VERBOSE, LogLevel::DEBUG => OutputInterface::VERBOSITY_DEBUG]; $logger = new ConsoleLogger($output, $verbosityLevelMap); $this->getApplication()->setLogger($logger); } // config $config = $this->getApplication()->getConfig(); if (!isset($config)) { $config = new Config($input->getOption('config')); try { $config->loadConfigFile(); } catch (\RuntimeException $e) { $logger->critical($e->getMessage()); $this->setCode(function () { return 1; }); return; } $this->getApplication()->setConfig($config); } // compatibility: first client available at old config names // this overrides config values to options from command line arguments $firstTransmission = $config->get('transmission')[0]; $vars = ['host', 'port', 'user', 'password']; foreach ($vars as $var) { $configName = 'transmission-' . $var; $config->set($configName, $this->getInputOption($input, $configName, $firstTransmission[$var])); } // client $client = $this->getApplication()->getClient(); if (!isset($client)) { $client = $this->createTransmissionClient($config->get('transmission-host'), $config->get('transmission-port'), $config->get('transmission-user'), $config->get('transmission-password')); $this->getApplication()->setClient($client); } $logger->info('[{date}] command: {args}', ['date' => date('Y-m-d H:i:s'), 'args' => implode(' ', array_slice($_SERVER['argv'], 1))]); parent::initialize($input, $output); }
/** * @expectedException \RuntimeException */ public function testCorruptedConfig() { $this->configFile = tempnam(sys_get_temp_dir(), 'config'); $config = new Config($this->configFile); $config->loadConfigFile(); }