public function build($sourceDir, $destination = null, array $apps = [])
{
$success = true;
if (file_exists($sourceDir . '/.git')) {
(new LocalProject())->writeGitExclude($sourceDir);
}
$ids = [];
foreach (LocalApplication::getApplications($sourceDir, $this->config) as $app) {
$id = $app->getId();
$ids[] = $id;
if ($apps && !in_array($id, $apps)) {
continue;
}
$success = $this->buildApp($app, $sourceDir, $destination) && $success;
}
$notFounds = array_diff($apps, $ids);
if ($notFounds) {
foreach ($notFounds as $notFound) {
$this->output->writeln("Application not found: <comment>{$notFound}</comment>");
}
}
if (empty($this->settings['no-clean'])) {
$this->output->writeln("Cleaning up...");
$this->cleanBuilds($sourceDir);
$this->cleanArchives($sourceDir);
}
return $success;
}