Author: Thomas Müller (t_mueller_stolzenhain@yahoo.de)
示例#1
0
 /**
  * Executes the current command.
  *
  * This method is not abstract because you can use this class
  * as a concrete class. In this case, instead of defining the
  * execute() method, you set the code to execute by passing
  * a Closure to the setCode() method.
  *
  * @param InputInterface  $input  An InputInterface instance
  * @param OutputInterface $output An OutputInterface instance
  *
  * @throws \LogicException When this abstract method is not implemented
  * @return null|int        null or 0 if everything went fine, or an error code
  *
  * @see    setCode()
  */
 protected function execute(InputInterface $input, OutputInterface $output)
 {
     $leftFilename = $input->getArgument('left');
     $rightFilename = $input->getArgument('right');
     $debug = $input->getOption('debug');
     $loggerHelper = new LoggerHelper();
     $logger = $loggerHelper->create($debug);
     if (!$rightFilename || !file_exists($rightFilename)) {
         $logger->info('right file not set or invalid - creating right file from resources');
         $cacheDir = sys_get_temp_dir() . '/browscap-diff/' . microtime(true) . '/';
         $rightFilename = $cacheDir . 'full_php_browscap.ini';
         if (!file_exists($cacheDir)) {
             mkdir($cacheDir, 0777, true);
         }
         $buildGenerator = new BuildGenerator($input->getOption('resources'), $cacheDir);
         $writerCollectionFactory = new FullPhpWriterFactory();
         $writerCollection = $writerCollectionFactory->createCollection($logger, $cacheDir);
         $buildGenerator->setLogger($logger)->setCollectionCreator(new CollectionCreator())->setWriterCollection($writerCollection);
         $buildGenerator->run($input->getArgument('version'), false);
     }
     $generator = new DiffGenerator();
     $generator->setLogger($logger)->run($leftFilename, $rightFilename);
     $logger->info('Diff done.');
 }
示例#2
0
 /**
  * Executes the current command.
  *
  * This method is not abstract because you can use this class
  * as a concrete class. In this case, instead of defining the
  * execute() method, you set the code to execute by passing
  * a Closure to the setCode() method.
  *
  * @param InputInterface  $input  An InputInterface instance
  * @param OutputInterface $output An OutputInterface instance
  *
  * @throws \Exception
  * @return null|integer null or 0 if everything went fine, or an error code
  *
  * @see    setCode()
  */
 protected function execute(InputInterface $input, OutputInterface $output)
 {
     $inputFile = $input->getArgument('inputFile');
     $mode = $input->getOption('mode');
     if (!in_array($mode, array(self::MODE_MATCHED, self::MODE_UNMATCHED))) {
         throw new \Exception('Mode must be "matched" or "unmatched"');
     }
     if (!file_exists($inputFile)) {
         throw new \Exception('Input File "' . $inputFile . '" does not exist, or cannot access');
     }
     $cacheDir = sys_get_temp_dir() . '/browscap-grep/' . microtime(true) . '/';
     if (!file_exists($cacheDir)) {
         mkdir($cacheDir, 0777, true);
     }
     $debug = $input->getOption('debug');
     $loggerHelper = new LoggerHelper();
     $this->logger = $loggerHelper->create($debug);
     $iniFile = $input->getArgument('iniFile');
     if (!$iniFile || !file_exists($iniFile)) {
         $this->logger->info('iniFile Argument not set or invalid - creating iniFile from resources');
         $iniFile = $cacheDir . 'full_php_browscap.ini';
         $buildGenerator = new BuildGenerator($input->getOption('resources'), $cacheDir);
         $writerCollectionFactory = new FullPhpWriterFactory();
         $writerCollection = $writerCollectionFactory->createCollection($this->logger, $cacheDir);
         $buildGenerator->setLogger($this->logger)->setCollectionCreator(new CollectionCreator())->setWriterCollection($writerCollection);
         $buildGenerator->run($input->getArgument('version'), false);
     }
     $generator = new GrepGenerator();
     $browscap = new Browscap($cacheDir);
     $browscap->localFile = $iniFile;
     $generator->setLogger($this->logger)->run($browscap, $inputFile, $mode);
     $this->logger->info('Grep done.');
 }
 /**
  * tests creating a writer collection
  *
  * @group writer
  * @group sourcetest
  */
 public function testCreateCollection()
 {
     $logger = $this->createMock(\Monolog\Logger::class);
     $dir = vfsStream::url(self::STORAGE_DIR);
     self::assertInstanceOf(\Browscap\Writer\WriterCollection::class, $this->object->createCollection($logger, $dir));
 }
 /**
  * tests creating a writer collection
  *
  * @group writer
  * @group sourcetest
  */
 public function testCreateCollection()
 {
     $mockLogger = $this->getMock('\\Monolog\\Logger', array(), array(), '', false);
     $dir = vfsStream::url(self::STORAGE_DIR);
     self::assertInstanceOf('\\Browscap\\Writer\\WriterCollection', $this->object->createCollection($mockLogger, $dir));
 }