diff --git a/app/Console/Commands/UpdateAll.php b/app/Console/Commands/UpdateAll.php new file mode 100644 index 000000000..c61167ad0 --- /dev/null +++ b/app/Console/Commands/UpdateAll.php @@ -0,0 +1,74 @@ +info('Starting update...'); + + // Update core + if ($this->runUpdate('core') !== true) { + $this->error('Not able to update core!'); + + return; + } + + // Update modules + $modules = module()->all(); + + foreach ($modules as $module) { + $alias = $module->get('alias'); + + if ($this->runUpdate($alias) !== true) { + $this->error('Not able to update ' . $alias . '!'); + } + } + + $this->info('Update finished.'); + } + + protected function runUpdate($alias) + { + $this->info('Updating ' . $alias . '...'); + + $company_id = $this->argument('company'); + + $command = "php artisan update {$alias} {$company_id}"; + + if (true !== $result = Console::run($command, true)) { + $message = !empty($result) ? $result : trans('modules.errors.finish', ['module' => $alias]); + + $this->error($message); + + return false; + } + + return true; + } +}