From 6da31f7c2b38c894b20b786344a1be7d7064fb91 Mon Sep 17 00:00:00 2001 From: Jordi Boggiano Date: Wed, 10 Apr 2013 18:17:41 +0200 Subject: [PATCH] Add handling of preferred-install config in create-project, fixes #1780 --- src/Composer/Command/CreateProjectCommand.php | 30 +++++++++++++++---- 1 file changed, 25 insertions(+), 5 deletions(-) diff --git a/src/Composer/Command/CreateProjectCommand.php b/src/Composer/Command/CreateProjectCommand.php index 4c1aeb6d6..3a9c2635d 100644 --- a/src/Composer/Command/CreateProjectCommand.php +++ b/src/Composer/Command/CreateProjectCommand.php @@ -91,14 +91,36 @@ EOT protected function execute(InputInterface $input, OutputInterface $output) { + $config = Factory::createConfig(); + + $preferSource = false; + $preferDist = false; + switch ($config->get('preferred-install')) { + case 'source': + $preferSource = true; + break; + case 'dist': + $preferDist = true; + break; + case 'auto': + default: + // noop + break; + } + if ($input->getOption('prefer-source') || $input->getOption('prefer-dist')) { + $preferSource = $input->getOption('prefer-source'); + $preferDist = $input->getOption('prefer-dist'); + } + return $this->installProject( $this->getIO(), + $config, $input->getArgument('package'), $input->getArgument('directory'), $input->getArgument('version'), $input->getOption('stability'), - $input->getOption('prefer-source'), - $input->getOption('prefer-dist'), + $preferSource, + $preferDist, $input->getOption('dev'), $input->getOption('repository-url'), $input->getOption('no-custom-installers'), @@ -108,10 +130,8 @@ EOT ); } - public function installProject(IOInterface $io, $packageName, $directory = null, $packageVersion = null, $stability = 'stable', $preferSource = false, $preferDist = false, $installDevPackages = false, $repositoryUrl = null, $disableCustomInstallers = false, $noScripts = false, $keepVcs = false, $noProgress = false) + public function installProject(IOInterface $io, $config, $packageName, $directory = null, $packageVersion = null, $stability = 'stable', $preferSource = false, $preferDist = false, $installDevPackages = false, $repositoryUrl = null, $disableCustomInstallers = false, $noScripts = false, $keepVcs = false, $noProgress = false) { - $config = Factory::createConfig(); - $stability = strtolower($stability); if ($stability === 'rc') { $stability = 'RC';