Browse Source

Merge pull request #5665 from radmiraal/default-strategy-from-environment

Allow setting default transport strategy for path repositories
Jordi Boggiano 8 years ago
parent
commit
b6cc2c7b83
2 changed files with 11 additions and 0 deletions
  1. 6 0
      doc/03-cli.md
  2. 5 0
      src/Composer/Downloader/PathDownloader.php

+ 6 - 0
doc/03-cli.md

@@ -868,4 +868,10 @@ If set to 1, this env disables the warning about running commands as root/super
 It also disables automatic clearing of sudo sessions, so you should really only set this
 if you use Composer as super user at all times like in docker containers.
 
+### COMPOSER_MIRROR_PATH_REPOS
+
+If set to 1, this env changes the default path repository strategy to `mirror` instead
+of `symlink`. As it is the default strategy being set it can still be overwritten by
+repository options.
+
 ← [Libraries](02-libraries.md)  |  [Schema](04-schema.md) →

+ 5 - 0
src/Composer/Downloader/PathDownloader.php

@@ -59,6 +59,11 @@ class PathDownloader extends FileDownloader implements VcsCapableDownloaderInter
         $currentStrategy = self::STRATEGY_SYMLINK;
         $allowedStrategies = array(self::STRATEGY_SYMLINK, self::STRATEGY_MIRROR);
 
+        $mirrorPathRepos = getenv('COMPOSER_MIRROR_PATH_REPOS');
+        if ($mirrorPathRepos) {
+            $currentStrategy = self::STRATEGY_MIRROR;
+        }
+
         if (true === $transportOptions['symlink']) {
             $currentStrategy = self::STRATEGY_SYMLINK;
             $allowedStrategies = array(self::STRATEGY_SYMLINK);