Merge pull request #4829 from curry684/issue-4726
Globbing while resolving path repositories now normalizes to slashespull/4834/head
commit
5672f67475
|
@ -113,7 +113,7 @@ class PathRepository extends ArrayRepository implements ConfigurableRepositoryIn
|
||||||
parent::initialize();
|
parent::initialize();
|
||||||
|
|
||||||
foreach ($this->getUrlMatches() as $url) {
|
foreach ($this->getUrlMatches() as $url) {
|
||||||
$path = realpath($url) . '/';
|
$path = realpath($url) . DIRECTORY_SEPARATOR;
|
||||||
$composerFilePath = $path.'composer.json';
|
$composerFilePath = $path.'composer.json';
|
||||||
|
|
||||||
if (!file_exists($composerFilePath)) {
|
if (!file_exists($composerFilePath)) {
|
||||||
|
@ -131,7 +131,8 @@ class PathRepository extends ArrayRepository implements ConfigurableRepositoryIn
|
||||||
if (!isset($package['version'])) {
|
if (!isset($package['version'])) {
|
||||||
$package['version'] = $this->versionGuesser->guessVersion($package, $path) ?: 'dev-master';
|
$package['version'] = $this->versionGuesser->guessVersion($package, $path) ?: 'dev-master';
|
||||||
}
|
}
|
||||||
if (is_dir($path.'/.git') && 0 === $this->process->execute('git log -n1 --pretty=%H', $output, $path)) {
|
$output = '';
|
||||||
|
if (is_dir($path . DIRECTORY_SEPARATOR . '.git') && 0 === $this->process->execute('git log -n1 --pretty=%H', $output, $path)) {
|
||||||
$package['dist']['reference'] = trim($output);
|
$package['dist']['reference'] = trim($output);
|
||||||
} else {
|
} else {
|
||||||
$package['dist']['reference'] = Locker::getContentHash($json);
|
$package['dist']['reference'] = Locker::getContentHash($json);
|
||||||
|
@ -153,6 +154,9 @@ class PathRepository extends ArrayRepository implements ConfigurableRepositoryIn
|
||||||
*/
|
*/
|
||||||
private function getUrlMatches()
|
private function getUrlMatches()
|
||||||
{
|
{
|
||||||
return glob($this->url, GLOB_MARK | GLOB_ONLYDIR);
|
// Ensure environment-specific path separators are normalized to URL separators
|
||||||
|
return array_map(function($val) {
|
||||||
|
return str_replace(DIRECTORY_SEPARATOR, '/', $val);
|
||||||
|
}, glob($this->url, GLOB_MARK | GLOB_ONLYDIR));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -101,6 +101,9 @@ class PathRepositoryTest extends TestCase
|
||||||
|
|
||||||
$package = $packages[0];
|
$package = $packages[0];
|
||||||
$this->assertEquals('test/path-versioned', $package->getName());
|
$this->assertEquals('test/path-versioned', $package->getName());
|
||||||
$this->assertEquals(rtrim($relativeUrl, DIRECTORY_SEPARATOR), rtrim($package->getDistUrl(), DIRECTORY_SEPARATOR));
|
|
||||||
|
// Convert platform specific separators back to generic URL slashes
|
||||||
|
$relativeUrl = str_replace(DIRECTORY_SEPARATOR, '/', $relativeUrl);
|
||||||
|
$this->assertEquals(rtrim($relativeUrl, '/'), rtrim($package->getDistUrl(), '/'));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue