bootstrapping: play nice with duplicate modules

A module loaded manually could also exist in the list of enabled
modules if a configuration is given and a module with the same name
has been enabled. This used to confuse documentation.
This commit is contained in:
Thomas Gelf 2014-06-04 23:37:36 +00:00
parent bdcec5a253
commit 4202e34d13

View File

@ -182,16 +182,15 @@ class Loader
if ($params === null) { if ($params === null) {
$params = $this->app->getParams(); $params = $this->app->getParams();
} }
if ($this->moduleName === null) {
$first = $params->shift(); $first = $params->shift();
if (! $first) { if (! $first) {
return; return;
} }
if ($this->moduleName === null) {
$found = $this->resolveName($first); $found = $this->resolveName($first);
} else { } else {
$found = $this->moduleName; $found = $this->moduleName;
$params->unshift($first);
} }
if (! $found) { if (! $found) {
$msg = "There is no such module or command: '$first'"; $msg = "There is no such module or command: '$first'";
@ -431,11 +430,10 @@ class Loader
{ {
if ($this->modules === null) { if ($this->modules === null) {
$this->modules = array(); $this->modules = array();
$this->modules = array_merge( $this->modules = array_unique(array_merge(
$this->app->getModuleManager()->listEnabledModules(), $this->app->getModuleManager()->listEnabledModules(),
$this->app->getModuleManager()->listLoadedModules() $this->app->getModuleManager()->listLoadedModules()
); ));
sort($this->modules);
} }
return $this->modules; return $this->modules;
} }