mirror of
https://github.com/pelican-dev/panel.git
synced 2025-05-20 01:44:45 +02:00

* Not found property rule * Make these “better” * Day 1 * Day 2 * Day 3 * Dat 4 * Remove disabled check * Day 4 continued * Run pint * Final changes hopefully * Pint fixes * Fix again * Reset these * Update app/Filament/Admin/Pages/Health.php Co-authored-by: MartinOscar <40749467+rmartinoscar@users.noreply.github.com> * Update app/Traits/CheckMigrationsTrait.php Co-authored-by: MartinOscar <40749467+rmartinoscar@users.noreply.github.com> --------- Co-authored-by: MartinOscar <40749467+rmartinoscar@users.noreply.github.com>
49 lines
1.4 KiB
PHP
49 lines
1.4 KiB
PHP
<?php
|
|
|
|
namespace App\Console\Commands\Egg;
|
|
|
|
use App\Models\Egg;
|
|
use App\Services\Eggs\Sharing\EggExporterService;
|
|
use Exception;
|
|
use Illuminate\Console\Command;
|
|
|
|
class CheckEggUpdatesCommand extends Command
|
|
{
|
|
protected $signature = 'p:egg:check-updates';
|
|
|
|
public function handle(EggExporterService $exporterService): void
|
|
{
|
|
$eggs = Egg::all();
|
|
foreach ($eggs as $egg) {
|
|
try {
|
|
$this->check($egg, $exporterService);
|
|
} catch (Exception $exception) {
|
|
$this->error("{$egg->name}: Error ({$exception->getMessage()})");
|
|
}
|
|
}
|
|
}
|
|
|
|
private function check(Egg $egg, EggExporterService $exporterService): void
|
|
{
|
|
if (is_null($egg->update_url)) {
|
|
$this->comment("$egg->name: Skipping (no update url set)");
|
|
|
|
return;
|
|
}
|
|
|
|
$currentJson = json_decode($exporterService->handle($egg->id));
|
|
unset($currentJson->exported_at);
|
|
|
|
$updatedJson = json_decode(file_get_contents($egg->update_url));
|
|
unset($updatedJson->exported_at);
|
|
|
|
if (md5(json_encode($currentJson)) === md5(json_encode($updatedJson))) {
|
|
$this->info("$egg->name: Up-to-date");
|
|
cache()->put("eggs.$egg->uuid.update", false, now()->addHour());
|
|
} else {
|
|
$this->warn("$egg->name: Found update");
|
|
cache()->put("eggs.$egg->uuid.update", true, now()->addHour());
|
|
}
|
|
}
|
|
}
|