/** * Generate a build for build number specified * * @param string $buildNumber * @param \Composer\IO\IOInterface $io * @param bool $debug */ public static function createBuild($buildNumber, IOInterface $io = null, $debug = false) { $buildFolder = 'build/build-' . $buildNumber . '/'; $resourceFolder = 'vendor/browscap/browscap/resources/'; if (!file_exists($buildFolder)) { if ($io) { $io->write(' - Creating build folder'); } mkdir($buildFolder, 0775, true); } // Create a logger if ($io) { $io->write(' - Setting up logging'); } $loggerHelper = new LoggerHelper(); $logger = $loggerHelper->create($debug); $collectionCreator = new CollectionCreator(); if ($io) { $io->write(' - Creating writer collection'); } $writerCollectionFactory = new FullCollectionFactory(); $writerCollection = $writerCollectionFactory->createCollection($logger, $buildFolder); // Generate the actual browscap.ini files if ($io) { $io->write(' - Creating actual build'); } $buildGenerator = new BuildGenerator($resourceFolder, $buildFolder); $buildGenerator->setLogger($logger); $buildGenerator->setCollectionCreator($collectionCreator); $buildGenerator->setWriterCollection($writerCollection); $buildGenerator->run($buildNumber, false); if ($io) { $io->write(' - Creating cache'); } $iniFile = $buildFolder . 'full_php_browscap.ini'; $cache = new File(array(File::DIR => 'cache/')); $browscap = new Browscap(); $browscap->setCache($cache)->setLogger($logger); $browscap->convertFile($iniFile); }