Browse Source

Allow configuring a path repo to an empty path as long as using wildcards and the wildcard root exists, fixes #8679

Jordi Boggiano 5 years ago
parent
commit
d559bf5387
1 changed files with 11 additions and 0 deletions
  1. 11 0
      src/Composer/Repository/PathRepository.php

+ 11 - 0
src/Composer/Repository/PathRepository.php

@@ -128,6 +128,17 @@ class PathRepository extends ArrayRepository implements ConfigurableRepositoryIn
         $urlMatches = $this->getUrlMatches();
 
         if (empty($urlMatches)) {
+            if (preg_match('{[*{}]}', $this->url)) {
+                $url = $this->url;
+                while (preg_match('{[*{}]}', $url)) {
+                    $url = dirname($url);
+                }
+                // the parent directory before any wildcard exists, so we assume it is correctly configured but simply empty
+                if (is_dir($url)) {
+                    return;
+                }
+            }
+
             throw new \RuntimeException('The `url` supplied for the path (' . $this->url . ') repository does not exist');
         }