mirror of
https://github.com/usetrmnl/byos_laravel.git
synced 2026-01-13 23:18:10 +00:00
feat(#17): add commands and jobs to poll, download and update firmware
feat(#17): add commands and jobs to poll, download and update firmware feat(#17): update firmware modal feat(#17): add tests
This commit is contained in:
parent
93aac51182
commit
733f307072
13 changed files with 567 additions and 3 deletions
37
app/Console/Commands/FirmwareCheckCommand.php
Normal file
37
app/Console/Commands/FirmwareCheckCommand.php
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
<?php
|
||||
|
||||
namespace App\Console\Commands;
|
||||
|
||||
use App\Jobs\FirmwarePollJob;
|
||||
use App\Models\Firmware;
|
||||
use Illuminate\Console\Command;
|
||||
use function Laravel\Prompts\spin;
|
||||
use function Laravel\Prompts\table;
|
||||
|
||||
class FirmwareCheckCommand extends Command
|
||||
{
|
||||
protected $signature = 'trmnl:firmware:check {--download : Download the latest firmware if available}';
|
||||
|
||||
protected $description = 'Checks for the latest firmware and downloads it if flag --download is passed.';
|
||||
|
||||
public function handle(): void
|
||||
{
|
||||
spin(
|
||||
callback: fn () => FirmwarePollJob::dispatchSync(download: $this->option('download')),
|
||||
message: 'Checking for latest firmware...'
|
||||
);
|
||||
|
||||
$latestFirmware = Firmware::getLatest();
|
||||
if ($latestFirmware) {
|
||||
table(
|
||||
rows: [
|
||||
['Latest Version', $latestFirmware->version_tag],
|
||||
['Download URL', $latestFirmware->url],
|
||||
['Storage Location', $latestFirmware->storage_location],
|
||||
]
|
||||
);
|
||||
} else {
|
||||
$this->error('No firmware found.');
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue