mirror of
https://github.com/pelican-dev/panel.git
synced 2026-05-04 18:00:48 +03:00
32 lines
982 B
PHP
32 lines
982 B
PHP
|
|
<?php
|
||
|
|
|
||
|
|
namespace App\Checks;
|
||
|
|
|
||
|
|
use App\Services\Helpers\SoftwareVersionService;
|
||
|
|
use Spatie\Health\Checks\Check;
|
||
|
|
use Spatie\Health\Checks\Result;
|
||
|
|
|
||
|
|
class PanelVersionCheck extends Check
|
||
|
|
{
|
||
|
|
public function __construct(private SoftwareVersionService $versionService) {}
|
||
|
|
|
||
|
|
public function run(): Result
|
||
|
|
{
|
||
|
|
$isLatest = $this->versionService->isLatestPanel();
|
||
|
|
$currentVersion = $this->versionService->currentPanelVersion();
|
||
|
|
$latestVersion = $this->versionService->latestPanelVersion();
|
||
|
|
|
||
|
|
$result = Result::make()
|
||
|
|
->meta([
|
||
|
|
'isLatest' => $isLatest,
|
||
|
|
'currentVersion' => $currentVersion,
|
||
|
|
'latestVersion' => $latestVersion,
|
||
|
|
])
|
||
|
|
->shortSummary($isLatest ? 'up-to-date' : 'outdated');
|
||
|
|
|
||
|
|
return $isLatest
|
||
|
|
? $result->ok('Panel is up-to-date.')
|
||
|
|
: $result->failed('Installed version is `:currentVersion` but latest is `:latestVersion`.');
|
||
|
|
}
|
||
|
|
}
|