diff --git a/composer.json b/composer.json index dd6b3dd4aa..2ef06c0a82 100644 --- a/composer.json +++ b/composer.json @@ -32,7 +32,7 @@ "consolidation/config": "^1.1.0", "consolidation/output-formatters": "^3.1.12", "consolidation/robo": "^1.1.5", - "consolidation/site-alias": "^1.1.1", + "consolidation/site-alias": "^1.1.2", "grasmash/yaml-expander": "^1.1.1", "league/container": "~2", "psr/log": "~1.0", diff --git a/scenarios/isolation-phpunit4/composer.json b/scenarios/isolation-phpunit4/composer.json index db9f5e7f39..75cb3d5396 100644 --- a/scenarios/isolation-phpunit4/composer.json +++ b/scenarios/isolation-phpunit4/composer.json @@ -27,7 +27,7 @@ "php": ">=5.6.0", "ext-dom": "*", "consolidation/config": "^1.1.0", - "consolidation/site-alias": "^1.1.1", + "consolidation/site-alias": "^1.1.2", "psr/log": "~1.0", "sebastian/version": "^1|^2", "symfony/finder": "~2.7|^3", diff --git a/scenarios/isolation/composer.json b/scenarios/isolation/composer.json index 702bf5aa84..75221ed2c6 100644 --- a/scenarios/isolation/composer.json +++ b/scenarios/isolation/composer.json @@ -27,7 +27,7 @@ "php": ">=5.6.0", "ext-dom": "*", "consolidation/config": "^1.1.0", - "consolidation/site-alias": "^1.1.1", + "consolidation/site-alias": "^1.1.2", "psr/log": "~1.0", "sebastian/version": "^1|^2", "symfony/finder": "~2.7|^3", diff --git a/src/Commands/core/SiteCommands.php b/src/Commands/core/SiteCommands.php index cde8468fc7..ec1d73d7c1 100644 --- a/src/Commands/core/SiteCommands.php +++ b/src/Commands/core/SiteCommands.php @@ -115,10 +115,11 @@ public function siteSet($site = '@none') */ public function siteAlias($site = null, $options = ['format' => 'yaml']) { - // Check to see if the user provided a specification that matches + // First check to see if the user provided a specification that matches // multiple sites. - $aliasList = $this->siteAliasManager()->getMultiple($site); - if (is_array($aliasList)) { + list($locationPart, $sitePart) = $this->splitLocationFromSite($site); + $aliasList = $this->siteAliasManager()->getMultiple($sitePart, $locationPart); + if (is_array($aliasList) && !empty($aliasList)) { return new ListDataFromKeys($this->siteAliasExportList($aliasList, $options)); } @@ -135,6 +136,21 @@ public function siteAlias($site = null, $options = ['format' => 'yaml']) } } + /** + * splitLocationFromSite returns the location and the site if the + * site alias is in the form '@location.site'. Otherwise it just + * returns the site unchanged, without a location. + */ + protected function splitLocationFromSite($site) + { + $parts = explode('.', ltrim($site, '@')); + + if (count($parts) == 2) { + return [$parts[0], '@' . $parts[1]]; + } + return [null, $site]; + } + /** * Convert legacy site alias files to the new yml format. *