update extra modules
This commit is contained in:
parent
e146712a6f
commit
885b4c18fc
@ -24,9 +24,7 @@ class InstallExtraModules
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
$module = module($event->alias);
|
$extra_modules = module($event->alias)->get('extra-modules');
|
||||||
|
|
||||||
$extra_modules = $module->get('extra-modules');
|
|
||||||
|
|
||||||
if (empty($extra_modules)) {
|
if (empty($extra_modules)) {
|
||||||
return;
|
return;
|
||||||
|
58
app/Listeners/Module/UpdateExtraModules.php
Normal file
58
app/Listeners/Module/UpdateExtraModules.php
Normal file
@ -0,0 +1,58 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Listeners\Module;
|
||||||
|
|
||||||
|
use App\Events\Install\UpdateFinished as Event;
|
||||||
|
use App\Utilities\Console;
|
||||||
|
use App\Utilities\Versions;
|
||||||
|
use Illuminate\Support\Facades\App;
|
||||||
|
|
||||||
|
class UpdateExtraModules
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Handle the event.
|
||||||
|
*
|
||||||
|
* @param $event
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function handle(Event $event)
|
||||||
|
{
|
||||||
|
if (App::environment('testing')) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
$extra_modules = module($event->alias)->get('extra-modules');
|
||||||
|
|
||||||
|
if (empty($extra_modules)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach ($extra_modules as $alias => $level) {
|
||||||
|
// Don't update if the module is "suggested"
|
||||||
|
if ($level != 'required') {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
$installed_version = module_version($alias);
|
||||||
|
$latest_version = Versions::latest($alias);
|
||||||
|
|
||||||
|
// Skip if no update available
|
||||||
|
if (version_compare($installed_version, $latest_version, '>=')) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
$company_id = session('company_id');
|
||||||
|
|
||||||
|
$command = "update {$alias} {$company_id} {$latest_version}";
|
||||||
|
|
||||||
|
if (true !== $result = Console::run($command)) {
|
||||||
|
$message = !empty($result) ? $result : trans('modules.errors.finish', ['module' => $alias]);
|
||||||
|
|
||||||
|
logger($message);
|
||||||
|
|
||||||
|
// Stop the propagation of event if the required module failed to update
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -14,6 +14,7 @@ class Event extends Provider
|
|||||||
protected $listen = [
|
protected $listen = [
|
||||||
'App\Events\Install\UpdateFinished' => [
|
'App\Events\Install\UpdateFinished' => [
|
||||||
'App\Listeners\Update\CreateModuleUpdatedHistory',
|
'App\Listeners\Update\CreateModuleUpdatedHistory',
|
||||||
|
'App\Listeners\Module\UpdateExtraModules',
|
||||||
'App\Listeners\Update\V20\Version200',
|
'App\Listeners\Update\V20\Version200',
|
||||||
'App\Listeners\Update\V20\Version203',
|
'App\Listeners\Update\V20\Version203',
|
||||||
'App\Listeners\Update\V20\Version205',
|
'App\Listeners\Update\V20\Version205',
|
||||||
|
Loading…
x
Reference in New Issue
Block a user