41 lines
1.0 KiB
PHP
41 lines
1.0 KiB
PHP
<?php
|
|
|
|
namespace Modules\Stylist\Console;
|
|
|
|
use Illuminate\Console\Command;
|
|
use Modules\Stylist\Diagnostics\ThemeInspector;
|
|
|
|
final class FindDuplicateViewsCommand extends Command
|
|
{
|
|
protected $signature = 'stylist:duplicates';
|
|
|
|
protected $description = 'Find Blade task paths owned by more than one theme.';
|
|
|
|
public function __construct(private readonly ThemeInspector $inspector)
|
|
{
|
|
parent::__construct();
|
|
}
|
|
|
|
public function handle(): int
|
|
{
|
|
$duplicates = $this->inspector->duplicateViews();
|
|
if ($duplicates === []) {
|
|
$this->info('No duplicate theme views found.');
|
|
|
|
return self::SUCCESS;
|
|
}
|
|
|
|
$rows = [];
|
|
foreach ($duplicates as $view => $owners) {
|
|
foreach ($owners as $owner) {
|
|
$rows[] = [$view, $owner['theme'], $owner['path']];
|
|
}
|
|
}
|
|
|
|
$this->table(['View', 'Theme', 'Path'], $rows);
|
|
$this->error(count($duplicates).' duplicate view task(s) found.');
|
|
|
|
return self::FAILURE;
|
|
}
|
|
}
|