32 if (isset($updateList[
'MODULES'][0][
'#'][
'MODULE']))
34 $updateList = $this->updater->transformUpdateList($updateList[
'MODULES'][0][
'#'][
'MODULE']);
38 $importFile = $input->getOption(
'import');
39 if (!empty($importFile))
49 if (!$this->
installUpdates($updateList, $input->getOption(
'modules')))
57 $this->io->info(
'No updates found.');
65 $selectedModules = [];
66 if (!empty($inputModules))
68 $selectedModules = explode(
',', $inputModules);
72 foreach ($updateList as
$moduleId => $module)
74 if (empty($selectedModules) || in_array(
$moduleId, $selectedModules))
82 if (!empty($selectedModules))
85 $dependentModules = $this->updater->getDependencies($updateList,
$modules);
89 $this->io->title(
'Updates to install');
92 $this->io->writeln(
$moduleId .
' (' . $version .
')');
96 if ($this->io->confirm(
'Install updates?'))
98 $result = $this->updater->installUpdates(array_keys(
$modules), $this->io);
101 $this->io->success(
'Updates installed successfully.');
105 $this->io->error((
string)
$result->getError());
112 $this->io->info(
'No modules selected.');
134 if (($import = file_get_contents($importFile)) ===
false)
136 $this->io->error(
'Import of expert updates failed (can\'t read the file).');
140 $expertModules = json_decode($import,
true);
141 if (!\CUpdateExpertMode::isCorrectModulesStructure($expertModules))
143 $this->io->error(
'Import of expert updates failed (JSON structure).');
147 $this->io->title(
'Imported expert updates');
148 foreach ($expertModules as $module => $version)
150 $this->io->writeln($module .
' (' . $version .
')');
153 $result = $this->updater->checkExpertDependencies($updateList, $expertModules);
157 $this->io->error((
string)
$result->getError());
159 foreach (
$result->getData() as $module => $dependencies)
161 $this->io->writeln($module .
' requires ' . implode(
', ', $dependencies));
163 $this->io->newLine();
168 if ($this->io->confirm(
'Install updates?'))
170 $result = $this->updater->installUpdates($expertModules, $this->io);
173 $this->io->success(
'Updates installed successfully.');
177 $this->io->error((
string)
$result->getError());