diff --git a/common/scripts/update_all_modules.php b/common/scripts/update_all_modules.php new file mode 100644 index 000000000..2f9c88dd8 --- /dev/null +++ b/common/scripts/update_all_modules.php @@ -0,0 +1,61 @@ +getModuleList(); +$need_install = array(); +$need_update = array(); +foreach($module_list as $key => $value) +{ + if($value->need_install) + { + $need_install[] = $value->module; + } + if($value->need_update) + { + $need_update[] = $value->module; + } +} + +// Install all modules. +$oInstallController = getController('install'); +foreach ($need_install as $module) +{ + try + { + echo 'Installing ' . $module . '...' . PHP_EOL; + $oInstallController->installModule($module, './modules/' . $module); + } + catch (\Exception $e) + { + // pass + } +} + +// Update all modules. +$oInstallAdminController = getAdminController('install'); +foreach ($need_update as $module) +{ + echo 'Updating ' . $module . '...' . PHP_EOL; + $oModule = getModule($module, 'class'); + if ($oModule) + { + $oModule->moduleUpdate(); + } +} + +// Set the exit status if there were any errors. +if ($exit_status != 0) +{ + exit($exit_status); +}