/** * @param InputInterface $input * @param OutputInterface $output * @param Project $project */ private function overrideSettings(InputInterface $input, OutputInterface $output, Project $project) { $branch = $input->getOption(self::OPTION_OVERRIDE_BRANCH); $name = null; if ($branch) { $output->writeln(sprintf('Overriding repository branch: <info>%s</info>… ', $branch)); $project->overrideBranch($branch); $name = preg_replace('#(/[^/]+)?$#', '/' . $branch, $project->getName()); } $name = $input->getOption(self::OPTION_OVERRIDE_NAME) ?: $name; if ($name) { $output->writeln(sprintf('Overriding project name: <info>%s</info>… ', $name)); $project->overrideName($name); $base = sprintf("%u", crc32($name)) % floor(1000 / sizeof($project->getFixedPorts())); $project->setFixedPortsBase(48000 + $base); } }