From 4f4cbc17d93a13144423ab1339a7177859a7f869 Mon Sep 17 00:00:00 2001 From: Ulrich Kautz Date: Thu, 18 Oct 2012 17:38:09 +0200 Subject: [PATCH 1/2] Added "--prefer-dist" option to create-project command --- src/Composer/Command/CreateProjectCommand.php | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/Composer/Command/CreateProjectCommand.php b/src/Composer/Command/CreateProjectCommand.php index 29b4fce6c..99646ba13 100644 --- a/src/Composer/Command/CreateProjectCommand.php +++ b/src/Composer/Command/CreateProjectCommand.php @@ -49,6 +49,7 @@ class CreateProjectCommand extends Command new InputArgument('directory', InputArgument::OPTIONAL, 'Directory where the files should be created'), new InputArgument('version', InputArgument::OPTIONAL, 'Version, will defaults to latest'), new InputOption('prefer-source', null, InputOption::VALUE_NONE, 'Forces installation from package sources when possible, including VCS information.'), + new InputOption('prefer-dist', null, InputOption::VALUE_NONE, 'Forces installation from package dist even for dev versions.'), new InputOption('repository-url', null, InputOption::VALUE_REQUIRED, 'Pick a different repository url to look for the package.'), new InputOption('dev', null, InputOption::VALUE_NONE, 'Whether to install dependencies for development.'), new InputOption('no-custom-installers', null, InputOption::VALUE_NONE, 'Whether to disable custom installers.'), @@ -84,6 +85,7 @@ EOT $input->getArgument('directory'), $input->getArgument('version'), $input->getOption('prefer-source'), + $input->getOption('prefer-dist'), $input->getOption('dev'), $input->getOption('repository-url'), $input->getOption('no-custom-installers'), @@ -92,7 +94,7 @@ EOT ); } - public function installProject(IOInterface $io, $packageName, $directory = null, $packageVersion = null, $preferSource = false, $installDevPackages = false, $repositoryUrl = null, $disableCustomInstallers = false, $noScripts = false, $keepVcs = false) + public function installProject(IOInterface $io, $packageName, $directory = null, $packageVersion = null, $preferSource = false, $preferDist = false, $installDevPackages = false, $repositoryUrl = null, $disableCustomInstallers = false, $noScripts = false, $keepVcs = false) { $config = Factory::createConfig(); @@ -160,6 +162,8 @@ EOT $package->setSourceReference(substr($package->getPrettyVersion(), 4)); } + $dm->setPreferSource($preferSource) + ->setPreferDist($preferDist); $projectInstaller = new ProjectInstaller($directory, $dm); $projectInstaller->install(new InstalledFilesystemRepository(new JsonFile('php://memory')), $package); if ($package->getRepository() instanceof NotifiableRepositoryInterface) { @@ -179,6 +183,7 @@ EOT $installer = Installer::create($io, $composer); $installer->setPreferSource($preferSource) + ->setPreferDist($preferDist) ->setDevMode($installDevPackages) ->setRunScripts( ! $noScripts); From 051118c500769d818bf85b0aecef20fa322ab9a8 Mon Sep 17 00:00:00 2001 From: Ulrich Kautz Date: Fri, 19 Oct 2012 12:56:59 +0200 Subject: [PATCH 2/2] Check for necessity of VCS cleanup when --prefer-dist is used (only project package, so far) --- src/Composer/Command/CreateProjectCommand.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/Composer/Command/CreateProjectCommand.php b/src/Composer/Command/CreateProjectCommand.php index 99646ba13..00bb21094 100644 --- a/src/Composer/Command/CreateProjectCommand.php +++ b/src/Composer/Command/CreateProjectCommand.php @@ -169,6 +169,7 @@ EOT if ($package->getRepository() instanceof NotifiableRepositoryInterface) { $package->getRepository()->notifyInstall($package); } + $installedFromVcs = 'source' === $package->getInstallationSource(); $io->write('Created project in ' . $directory . ''); chdir($directory); @@ -197,6 +198,7 @@ EOT !$io->isInteractive() || $io->askConfirmation('Do you want to remove the exisitng VCS (.git, .svn..) history? [Y,n]? ', true) ) + && (!$preferDist || $installedFromVcs) ) { $finder = new Finder(); $finder->depth(1)->directories()->in(getcwd())->ignoreVCS(false)->ignoreDotFiles(false);