Remove duplication of branch alias parsing code
parent
774021bf99
commit
26e8217db7
|
@ -134,28 +134,9 @@ class ArrayLoader implements LoaderInterface
|
||||||
$package->setDistSha1Checksum(isset($config['dist']['shasum']) ? $config['dist']['shasum'] : null);
|
$package->setDistSha1Checksum(isset($config['dist']['shasum']) ? $config['dist']['shasum'] : null);
|
||||||
}
|
}
|
||||||
|
|
||||||
// check for a branch alias (dev-master => 1.0.x-dev for example) if this is a named branch
|
if ($aliasNormalized = $this->getBranchAlias($config)) {
|
||||||
if ('dev-' === substr($package->getPrettyVersion(), 0, 4) && isset($config['extra']['branch-alias']) && is_array($config['extra']['branch-alias'])) {
|
$package->setAlias($aliasNormalized);
|
||||||
foreach ($config['extra']['branch-alias'] as $sourceBranch => $targetBranch) {
|
$package->setPrettyAlias(preg_replace('{(\.9{7})+}', '.x', $aliasNormalized));
|
||||||
// ensure it is an alias to a -dev package
|
|
||||||
if ('-dev' !== substr($targetBranch, -4)) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
// normalize without -dev and ensure it's a numeric branch that is parseable
|
|
||||||
$validatedTargetBranch = $this->versionParser->normalizeBranch(substr($targetBranch, 0, -4));
|
|
||||||
if ('-dev' !== substr($validatedTargetBranch, -4)) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
// ensure that it is the current branch aliasing itself
|
|
||||||
if (strtolower($package->getPrettyVersion()) !== strtolower($sourceBranch)) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
$package->setAlias($validatedTargetBranch);
|
|
||||||
$package->setPrettyAlias(preg_replace('{(\.9{7})+}', '.x', $validatedTargetBranch));
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach (Package\BasePackage::$supportedLinkTypes as $type => $opts) {
|
foreach (Package\BasePackage::$supportedLinkTypes as $type => $opts) {
|
||||||
|
@ -191,6 +172,42 @@ class ArrayLoader implements LoaderInterface
|
||||||
return $package;
|
return $package;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Retrieves a branch alias (dev-master => 1.0.x-dev for example) if it exists
|
||||||
|
*
|
||||||
|
* @param array $config the entire package config
|
||||||
|
* @return string|null normalized version of the branch alias or null if there is none
|
||||||
|
*/
|
||||||
|
public function getBranchAlias(array $config)
|
||||||
|
{
|
||||||
|
if ('dev-' !== substr($config['version'], 0, 4)
|
||||||
|
|| !isset($config['extra']['branch-alias'])
|
||||||
|
|| !is_array($config['extra']['branch-alias'])
|
||||||
|
) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach ($config['extra']['branch-alias'] as $sourceBranch => $targetBranch) {
|
||||||
|
// ensure it is an alias to a -dev package
|
||||||
|
if ('-dev' !== substr($targetBranch, -4)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
// normalize without -dev and ensure it's a numeric branch that is parseable
|
||||||
|
$validatedTargetBranch = $this->versionParser->normalizeBranch(substr($targetBranch, 0, -4));
|
||||||
|
if ('-dev' !== substr($validatedTargetBranch, -4)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
// ensure that it is the current branch aliasing itself
|
||||||
|
if (strtolower($config['version']) !== strtolower($sourceBranch)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
return $validatedTargetBranch;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private function loadLinksFromConfig($package, $description, array $linksSpecs)
|
private function loadLinksFromConfig($package, $description, array $linksSpecs)
|
||||||
{
|
{
|
||||||
$links = array();
|
$links = array();
|
||||||
|
|
|
@ -108,29 +108,9 @@ class ComposerRepository extends ArrayRepository implements NotifiableRepository
|
||||||
}
|
}
|
||||||
|
|
||||||
// add branch aliases
|
// add branch aliases
|
||||||
if ('dev-' === substr($package['version'], 0, 4) && isset($package['extra']['branch-alias']) && is_array($package['extra']['branch-alias'])) {
|
if ($aliasNormalized = $this->loader->getBranchAlias($package)) {
|
||||||
foreach ($package['extra']['branch-alias'] as $sourceBranch => $targetBranch) {
|
$data['alias'] = preg_replace('{(\.9{7})+}', '.x', $aliasNormalized);
|
||||||
// ensure it is an alias to a -dev package
|
|
||||||
if ('-dev' !== substr($targetBranch, -4)) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
// normalize without -dev and ensure it's a numeric branch that is parseable
|
|
||||||
$validatedTargetBranch = $versionParser->normalizeBranch(substr($targetBranch, 0, -4));
|
|
||||||
if ('-dev' !== substr($validatedTargetBranch, -4)) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
// ensure that it is the current branch aliasing itself
|
|
||||||
if (strtolower($package['version']) !== strtolower($sourceBranch)) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
$alias = preg_replace('{(\.9{7})+}', '.x', $validatedTargetBranch);
|
|
||||||
$aliasNormalized = $validatedTargetBranch;
|
|
||||||
$data['alias'] = $alias;
|
|
||||||
$data['alias_normalized'] = $aliasNormalized;
|
$data['alias_normalized'] = $aliasNormalized;
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->minimalPackages[] = $data;
|
$this->minimalPackages[] = $data;
|
||||||
|
|
Loading…
Reference in New Issue