30 lines
982 B
PHP
Executable File
30 lines
982 B
PHP
Executable File
<?php
|
|
|
|
namespace Modules\Licensing\Console;
|
|
|
|
use Modules\Licensing\Models\LicenseProduct;
|
|
use Modules\Licensing\Services\LicenseIssuer;
|
|
use Illuminate\Console\Command;
|
|
|
|
class SonarDeskLicenseIssue extends Command
|
|
{
|
|
protected $signature = 'sonardesk:license:issue {product} {--name=} {--email=}';
|
|
|
|
protected $description = 'Issue a manual SonarDesk licence key';
|
|
|
|
public function handle(LicenseIssuer $issuer): int
|
|
{
|
|
$p = LicenseProduct::where('code', $this->argument('product'))->firstOrFail();
|
|
[$l,$key] = $issuer->issue($p, $this->option('name') ?: null, $this->option('email') ?: null);
|
|
if (! $key) {
|
|
$this->warn('Licence already existed; plaintext key is intentionally not recoverable.');
|
|
|
|
return self::FAILURE;
|
|
} $this->line('Licence ID: '.$l->id);
|
|
$this->line('Licence key: '.$key);
|
|
$this->warn('This is the only time the plaintext key is shown.');
|
|
|
|
return self::SUCCESS;
|
|
}
|
|
}
|