protected function execute(InputInterface $input, OutputInterface $output)
 {
     /** @var FormatterHelper $formatter */
     $formatter = $this->getHelperSet()->get('formatter');
     $path = $input->getArgument('config-path');
     if (is_dir($path)) {
         $path = $path . '/aip.yaml';
     }
     if (!file_exists($path)) {
         $output->writeln("<error>Configuration file not found: {$path}</error>");
         exit(1);
     }
     $output->writeln('<info>Loading configuration…</info>');
     $config = Yaml::parse($path);
     $runner = new Runner(dirname($path));
     foreach ($config['servers'] as $server) {
         if (!isset($server['transport'])) {
             $server['transport'] = 'Socket';
         }
         $runner->addServer($server);
         $line = $formatter->formatSection('app+', $server['app']['class'] . ' server via ' . $server['protocol'] . ' at ' . $server['socket'] . '. (' . $server['min-children'] . '-' . $server['max-children'] . ' workers)');
         $output->writeln($line);
     }
     $output->writeln('<info>Starting workers…</info>');
     $runner->go();
 }
 protected function execute(InputInterface $input, OutputInterface $output)
 {
     /** @var FormatterHelper $formatter */
     $formatter = $this->getHelperSet()->get('formatter');
     $path = $input->getArgument('directory');
     if (!is_dir($path)) {
         $output->writeln("<error>{$path} is not a valid directory</error>");
         exit(1);
     }
     $server = array('protocol' => 'HTTP', 'transport' => 'Socket', 'socket' => 'tcp://127.0.0.1:8080', 'min-children' => 1, 'max-children' => 1, 'app' => array('class' => 'AiP\\App\\FileServe', 'parameters' => array($path), 'file' => '', 'middlewares' => array('Logger', array('class' => 'AiP\\Middleware\\Directory', 'parameters' => array($path, true)), 'ConditionalGet')));
     $runner = new Runner($path);
     $runner->addServer($server);
     $line = $formatter->formatSection('app+', 'Serving files from "' . $path . '" via ' . $server['protocol'] . ' at ' . $server['socket'] . '. (' . $server['min-children'] . '-' . $server['max-children'] . ' workers)');
     $output->writeln($line);
     $output->writeln('<info>Starting workers…</info>');
     $runner->go();
 }