mirror of
				https://github.com/pelican-dev/panel.git
				synced 2025-11-04 07:46:53 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			80 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			80 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
 | 
						|
namespace App\Console\Commands;
 | 
						|
 | 
						|
use Illuminate\Console\Command;
 | 
						|
use App\Services\Helpers\SoftwareVersionService;
 | 
						|
 | 
						|
class InfoCommand extends Command
 | 
						|
{
 | 
						|
    protected $description = 'Displays the application, database, and email configurations along with the panel version.';
 | 
						|
 | 
						|
    protected $signature = 'p:info';
 | 
						|
 | 
						|
    /**
 | 
						|
     * VersionCommand constructor.
 | 
						|
     */
 | 
						|
    public function __construct(private SoftwareVersionService $versionService)
 | 
						|
    {
 | 
						|
        parent::__construct();
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * Handle execution of command.
 | 
						|
     */
 | 
						|
    public function handle(): void
 | 
						|
    {
 | 
						|
        $this->output->title('Version Information');
 | 
						|
        $this->table([], [
 | 
						|
            ['Panel Version', config('app.version')],
 | 
						|
            ['Latest Version', $this->versionService->getPanel()],
 | 
						|
            ['Up-to-Date', $this->versionService->isLatestPanel() ? 'Yes' : $this->formatText('No', 'bg=red')],
 | 
						|
            ['Unique Identifier', config('panel.service.author')],
 | 
						|
        ], 'compact');
 | 
						|
 | 
						|
        $this->output->title('Application Configuration');
 | 
						|
        $this->table([], [
 | 
						|
            ['Environment', $this->formatText(config('app.env'), config('app.env') === 'production' ?: 'bg=red')],
 | 
						|
            ['Debug Mode', $this->formatText(config('app.debug') ? 'Yes' : 'No', !config('app.debug') ?: 'bg=red')],
 | 
						|
            ['Installation URL', config('app.url')],
 | 
						|
            ['Installation Directory', base_path()],
 | 
						|
            ['Timezone', config('app.timezone')],
 | 
						|
            ['Cache Driver', config('cache.default')],
 | 
						|
            ['Queue Driver', config('queue.default')],
 | 
						|
            ['Session Driver', config('session.driver')],
 | 
						|
            ['Filesystem Driver', config('filesystems.default')],
 | 
						|
            ['Default Theme', config('themes.active')],
 | 
						|
        ], 'compact');
 | 
						|
 | 
						|
        $this->output->title('Database Configuration');
 | 
						|
        $driver = config('database.default');
 | 
						|
        $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');
 | 
						|
 | 
						|
        // TODO: Update this to handle other mail drivers
 | 
						|
        $this->output->title('Email Configuration');
 | 
						|
        $this->table([], [
 | 
						|
            ['Driver', config('mail.default')],
 | 
						|
            ['Host', config('mail.mailers.smtp.host')],
 | 
						|
            ['Port', config('mail.mailers.smtp.port')],
 | 
						|
            ['Username', config('mail.mailers.smtp.username')],
 | 
						|
            ['From Address', config('mail.from.address')],
 | 
						|
            ['From Name', config('mail.from.name')],
 | 
						|
            ['Encryption', config('mail.mailers.smtp.encryption')],
 | 
						|
        ], 'compact');
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * Format output in a Name: Value manner.
 | 
						|
     */
 | 
						|
    private function formatText(string $value, string $opts = ''): string
 | 
						|
    {
 | 
						|
        return sprintf('<%s>%s</>', $opts, $value);
 | 
						|
    }
 | 
						|
}
 |