diff --git a/utils/Commands/UpdateextensionCommand.php b/utils/Commands/UpdateextensionCommand.php
index a7eef574e..e73e4afc1 100644
--- a/utils/Commands/UpdateextensionCommand.php
+++ b/utils/Commands/UpdateextensionCommand.php
@@ -68,23 +68,21 @@ class UpdateextensionCommand extends Command
$installs = [];
/* Get a list of available extensions from the repository */
if($ret = $extmgr->updateExtensionList('', true)) {
-// $output->writeln(sprintf("Updated extension list from repository."));
// list of installed extensions
$extconfs = $extmgr->getExtensionConfiguration();
// list of extensions in repository, this will just return the
// latest version of an extension
$list = $extmgr->getExtensionList();
-// print_r($list);
foreach($list as $extname=>$data) {
$extversions = $extmgr->getExtensionListByName($extname);
-// print_r($extversions);
- $updates[$extname] = [];
- $installs[$extname] = [];
- $allowedversions = [];
+// $updates[$extname] = [];
+// $installs[$extname] = [];
foreach($extversions as $version=>$extversion) {
+ /* Only version which pass the check will be offered for
+ * update or install.
+ */
$check = $extmgr->checkExtensionByName($extname, $extversion);
if ($check) {
- $allowedversions[] = ''.$version.'';
if (isset($extconfs[$extname])) {
if (\Seeddms\Seeddms\ExtensionMgr::cmpVersion($version, $extconfs[$extname]['version']) > 0) {
$updates[$extname][$version] = $extversion;
@@ -92,60 +90,64 @@ class UpdateextensionCommand extends Command
} else {
$installs[$extname][$version] = $extversion;
}
- } else {
- $allowedversions[] = ''.$version.'';
}
}
}
$helper = new QuestionHelper();
- foreach($updates as $extname=>$update) {
- $availableversions = array_keys($update);
- if ($update) {
- $output->writeln(sprintf("Extension '%s' can be updated from %s to %s.", $extname, $extconfs[$extname]['version'], implode(', ', $availableversions)));
- $question = new Question(sprintf("Enter version to update: "), '');
- if ($answer = $helper->ask($input, $output, $question)) {
- if (in_array($answer, $availableversions)) {
- $output->writeln(sprintf("Update extension '%s' to version %s.", $extname, $answer));
- if ($tmpfile = $extmgr->getExtensionFromRepository($update[$answer]['filename'])) {
+ if($updates) {
+ $output->writeln(sprintf("%d extensions can be updated.>", count($updates)));
+ foreach($updates as $extname=>$update) {
+ $availableversions = array_keys($update);
+ if ($update) {
+ $output->writeln(sprintf("Extension '%s' can be updated from %s to %s.", $extname, $extconfs[$extname]['version'], implode(', ', $availableversions)));
+ $question = new Question(sprintf("Enter version to update: "), '');
+ if ($answer = $helper->ask($input, $output, $question)) {
+ if (in_array($answer, $availableversions)) {
+ $output->writeln(sprintf("Update extension '%s' to version %s.", $extname, $answer));
+ if ($tmpfile = $extmgr->getExtensionFromRepository($update[$answer]['filename'])) {
- if (0&&!$extmgr->updateExtension($tmpfile)) {
- foreach ($extmgr->getErrorMsgs() as $msg) {
- $output->writeln(sprintf("%s", $msg));
+ if (0&&!$extmgr->updateExtension($tmpfile)) {
+ foreach ($extmgr->getErrorMsgs() as $msg) {
+ $output->writeln(sprintf("%s", $msg));
+ }
+ unlink($tmpfile);
+ return Command::FAILURE;
+ } else {
+ unlink($tmpfile);
}
- unlink($tmpfile);
- return Command::FAILURE;
- } else {
- unlink($tmpfile);
}
+ } else {
+ $output->writeln(sprintf("Invalid version %s.", $answer));
}
- } else {
- $output->writeln(sprintf("Invalid version %s.", $answer));
}
}
}
}
- foreach($installs as $extname=>$install) {
- $availableversions = array_keys($install);
- if ($install) {
- $output->writeln(sprintf("Extension '%s' can be installed as version %s.", $extname, implode(', ', $availableversions)));
- $question = new Question(sprintf("Enter version to install: "), '');
- if ($answer = $helper->ask($input, $output, $question)) {
- if (in_array($answer, $availableversions)) {
- $output->writeln(sprintf("Install extension '%s' to version %s.", $extname, $answer));
- if ($tmpfile = $extmgr->getExtensionFromRepository($install[$answer]['filename'])) {
+ if($installs) {
+ $output->writeln(sprintf("%d extensions can be installed.>", count($installs)));
+ foreach($installs as $extname=>$install) {
+ $availableversions = array_keys($install);
+ if ($install) {
+ $output->writeln(sprintf("Extension '%s' can be installed as version %s.", $extname, implode(', ', $availableversions)));
+ $question = new Question(sprintf("Enter version to install: "), '');
+ if ($answer = $helper->ask($input, $output, $question)) {
+ if (in_array($answer, $availableversions)) {
+ $output->writeln(sprintf("Install extension '%s' to version %s.", $extname, $answer));
+ if ($tmpfile = $extmgr->getExtensionFromRepository($install[$answer]['filename'])) {
- if (0&&!$extmgr->updateExtension($tmpfile)) {
- foreach ($extmgr->getErrorMsgs() as $msg) {
- $output->writeln(sprintf("%s", $msg));
+ if (0&&!$extmgr->updateExtension($tmpfile)) {
+ foreach ($extmgr->getErrorMsgs() as $msg) {
+ $output->writeln(sprintf("%s", $msg));
+ }
+ unlink($tmpfile);
+ return Command::FAILURE;
+ } else {
+ unlink($tmpfile);
}
- unlink($tmpfile);
- return Command::FAILURE;
- } else {
- unlink($tmpfile);
}
+ } else {
+ $output->writeln(sprintf("Invalid version %s.", $answer));
}
- } else {
- $output->writeln(sprintf("Invalid version %s.", $answer));
}
}
}