public function run() { $config = $this->client->getConfig(); $library = new Hymn_Module_Library(); foreach ($config->sources as $sourceId => $source) { $active = !isset($source->active) || $source->active; $library->addShelf($sourceId, $source->path, $active); } $shelfId = $this->client->arguments->getArgument(0); if ($shelfId) { $modules = $library->getModules($shelfId); Hymn_Client::out(count($modules) . " modules available in module source '" . $shelfId . "':"); foreach ($modules as $moduleId => $module) { Hymn_Client::out("- " . $module->id); } } else { $modules = $library->getModules(); Hymn_Client::out(count($modules) . " modules available:"); foreach ($modules as $moduleId => $module) { Hymn_Client::out("- " . $module->id . ' (' . $module->version . ')'); } } }
public function run() { $config = $this->client->getConfig(); $moduleId = $this->client->arguments->getArgument(0); // $shelfId = $this->client->arguments->getArgument( 1 ); if ($moduleId) { $library = new Hymn_Module_Library(); foreach ($config->sources as $sourceId => $source) { $active = !isset($source->active) || $source->active; $library->addShelf($sourceId, $source->path, $active); } $modulesAvailable = $library->getModules(); $modulesInstalled = $library->listInstalledModules($config->application->uri); // get list of installed modules foreach ($modulesAvailable as $availableModule) { if ($moduleId !== $availableModule->id) { continue; } Hymn_Client::out('Module: ' . $availableModule->title); if ($availableModule->description) { Hymn_Client::out($availableModule->description); } Hymn_Client::out('Category: ' . $availableModule->category); Hymn_Client::out('Source: ' . $availableModule->sourceId); Hymn_Client::out('Version: ' . $availableModule->version); if (array_key_exists($moduleId, $modulesInstalled)) { $installedModule = $modulesInstalled[$moduleId]; Hymn_Client::out('Installed: ' . $installedModule->version); if (version_compare($availableModule->version, $installedModule->version, '>')) { $message = 'Update available: %s -> %s'; $message = sprintf($message, $installedModule->version, $availableModule->version); Hymn_Client::out($message); } } return; } Hymn_Client::out('Module ' . $moduleId . ' not available.'); } else { Hymn_Client::out("Application Settings:"); foreach ($config->application as $key => $value) { if (is_object($value)) { $value = json_encode($value, JSON_PRETTY_PRINT); } Hymn_Client::out("- " . $key . " => " . $value); } } }