Make use of Laravels AboutCommand
(#809)
* add pelican info to laravel AboutCommand * simplify p:info command
This commit is contained in:
parent
8460c52534
commit
3dfdc70790
@ -3,7 +3,6 @@
|
|||||||
namespace App\Console\Commands;
|
namespace App\Console\Commands;
|
||||||
|
|
||||||
use Illuminate\Console\Command;
|
use Illuminate\Console\Command;
|
||||||
use App\Services\Helpers\SoftwareVersionService;
|
|
||||||
|
|
||||||
class InfoCommand extends Command
|
class InfoCommand extends Command
|
||||||
{
|
{
|
||||||
@ -11,98 +10,8 @@ class InfoCommand extends Command
|
|||||||
|
|
||||||
protected $signature = 'p:info';
|
protected $signature = 'p:info';
|
||||||
|
|
||||||
/**
|
|
||||||
* InfoCommand constructor.
|
|
||||||
*/
|
|
||||||
public function __construct(private SoftwareVersionService $versionService)
|
|
||||||
{
|
|
||||||
parent::__construct();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Handle execution of command.
|
|
||||||
*/
|
|
||||||
public function handle(): void
|
public function handle(): void
|
||||||
{
|
{
|
||||||
$this->output->title('Version Information');
|
$this->call('about');
|
||||||
$this->table([], [
|
|
||||||
['Panel Version', $this->versionService->currentPanelVersion()],
|
|
||||||
['Latest Version', $this->versionService->latestPanelVersion()],
|
|
||||||
['Up-to-Date', $this->versionService->isLatestPanel() ? 'Yes' : $this->formatText('No', 'bg=red')],
|
|
||||||
], 'compact');
|
|
||||||
|
|
||||||
$this->output->title('Application Configuration');
|
|
||||||
$this->table([], [
|
|
||||||
['Environment', config('app.env') === 'production' ? config('app.env') : $this->formatText(config('app.env'), 'bg=red')],
|
|
||||||
['Debug Mode', config('app.debug') ? $this->formatText('Yes', 'bg=red') : 'No'],
|
|
||||||
['Application Name', config('app.name')],
|
|
||||||
['Application URL', config('app.url')],
|
|
||||||
['Installation Directory', base_path()],
|
|
||||||
['Cache Driver', config('cache.default')],
|
|
||||||
['Queue Driver', config('queue.default') === 'sync' ? $this->formatText(config('queue.default'), 'bg=red') : config('queue.default')],
|
|
||||||
['Session Driver', config('session.driver')],
|
|
||||||
['Filesystem Driver', config('filesystems.default')],
|
|
||||||
], 'compact');
|
|
||||||
|
|
||||||
$this->output->title('Database Configuration');
|
|
||||||
$driver = config('database.default');
|
|
||||||
if ($driver === 'sqlite') {
|
|
||||||
$this->table([], [
|
|
||||||
['Driver', $driver],
|
|
||||||
['Database', config("database.connections.$driver.database")],
|
|
||||||
], 'compact');
|
|
||||||
} else {
|
|
||||||
$this->table([], [
|
|
||||||
['Driver', $driver],
|
|
||||||
['Host', config("database.connections.$driver.host")],
|
|
||||||
['Port', config("database.connections.$driver.port")],
|
|
||||||
['Database', config("database.connections.$driver.database")],
|
|
||||||
['Username', config("database.connections.$driver.username")],
|
|
||||||
], 'compact');
|
|
||||||
}
|
|
||||||
|
|
||||||
$this->output->title('Email Configuration');
|
|
||||||
$driver = config('mail.default');
|
|
||||||
if ($driver === 'smtp') {
|
|
||||||
$this->table([], [
|
|
||||||
['Driver', $driver],
|
|
||||||
['Host', config("mail.mailers.$driver.host")],
|
|
||||||
['Port', config("mail.mailers.$driver.port")],
|
|
||||||
['Username', config("mail.mailers.$driver.username")],
|
|
||||||
['Encryption', config("mail.mailers.$driver.encryption")],
|
|
||||||
['From Address', config('mail.from.address')],
|
|
||||||
['From Name', config('mail.from.name')],
|
|
||||||
], 'compact');
|
|
||||||
} else {
|
|
||||||
$this->table([], [
|
|
||||||
['Driver', $driver],
|
|
||||||
['From Address', config('mail.from.address')],
|
|
||||||
['From Name', config('mail.from.name')],
|
|
||||||
], 'compact');
|
|
||||||
}
|
|
||||||
|
|
||||||
$this->output->title('Backup Configuration');
|
|
||||||
$driver = config('backups.default');
|
|
||||||
if ($driver === 's3') {
|
|
||||||
$this->table([], [
|
|
||||||
['Driver', $driver],
|
|
||||||
['Region', config("backups.disks.$driver.region")],
|
|
||||||
['Bucket', config("backups.disks.$driver.bucket")],
|
|
||||||
['Endpoint', config("backups.disks.$driver.endpoint")],
|
|
||||||
['Use path style endpoint', config("backups.disks.$driver.use_path_style_endpoint") ? 'Yes' : 'No'],
|
|
||||||
], 'compact');
|
|
||||||
} else {
|
|
||||||
$this->table([], [
|
|
||||||
['Driver', $driver],
|
|
||||||
], 'compact');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Format output in a Name: Value manner.
|
|
||||||
*/
|
|
||||||
private function formatText(string $value, string $opts = ''): string
|
|
||||||
{
|
|
||||||
return sprintf('<%s>%s</>', $opts, $value);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -7,6 +7,7 @@ use App\Models;
|
|||||||
use App\Models\ApiKey;
|
use App\Models\ApiKey;
|
||||||
use App\Models\Node;
|
use App\Models\Node;
|
||||||
use App\Models\User;
|
use App\Models\User;
|
||||||
|
use App\Services\Helpers\SoftwareVersionService;
|
||||||
use Dedoc\Scramble\Scramble;
|
use Dedoc\Scramble\Scramble;
|
||||||
use Dedoc\Scramble\Support\Generator\OpenApi;
|
use Dedoc\Scramble\Support\Generator\OpenApi;
|
||||||
use Dedoc\Scramble\Support\Generator\SecurityScheme;
|
use Dedoc\Scramble\Support\Generator\SecurityScheme;
|
||||||
@ -16,6 +17,7 @@ use Filament\Support\Facades\FilamentView;
|
|||||||
use Filament\View\PanelsRenderHook;
|
use Filament\View\PanelsRenderHook;
|
||||||
use Illuminate\Database\Eloquent\Relations\Relation;
|
use Illuminate\Database\Eloquent\Relations\Relation;
|
||||||
use Illuminate\Foundation\Application;
|
use Illuminate\Foundation\Application;
|
||||||
|
use Illuminate\Foundation\Console\AboutCommand;
|
||||||
use Illuminate\Support\Facades\Event;
|
use Illuminate\Support\Facades\Event;
|
||||||
use Illuminate\Support\Facades\Gate;
|
use Illuminate\Support\Facades\Gate;
|
||||||
use Illuminate\Support\Facades\Http;
|
use Illuminate\Support\Facades\Http;
|
||||||
@ -30,7 +32,7 @@ class AppServiceProvider extends ServiceProvider
|
|||||||
/**
|
/**
|
||||||
* Bootstrap any application services.
|
* Bootstrap any application services.
|
||||||
*/
|
*/
|
||||||
public function boot(Application $app): void
|
public function boot(Application $app, SoftwareVersionService $versionService): void
|
||||||
{
|
{
|
||||||
// If the APP_URL value is set with https:// make sure we force it here. Theoretically
|
// If the APP_URL value is set with https:// make sure we force it here. Theoretically
|
||||||
// this should just work with the proxy logic, but there are a lot of cases where it
|
// this should just work with the proxy logic, but there are a lot of cases where it
|
||||||
@ -104,6 +106,16 @@ class AppServiceProvider extends ServiceProvider
|
|||||||
Gate::before(function (User $user, $ability) {
|
Gate::before(function (User $user, $ability) {
|
||||||
return $user->isRootAdmin() ? true : null;
|
return $user->isRootAdmin() ? true : null;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
AboutCommand::add('Pelican', [
|
||||||
|
'Panel Version' => $versionService->currentPanelVersion(),
|
||||||
|
'Latest Version' => $versionService->latestPanelVersion(),
|
||||||
|
'Up-to-Date' => $versionService->isLatestPanel() ? '<fg=green;options=bold>Yes</>' : '<fg=red;options=bold>No</>',
|
||||||
|
]);
|
||||||
|
|
||||||
|
AboutCommand::add('Drivers', 'Backups', config('backups.default'));
|
||||||
|
|
||||||
|
AboutCommand::add('Environment', 'Installation Directory', base_path());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Loading…
x
Reference in New Issue
Block a user