style updates
This commit is contained in:
@@ -8,6 +8,7 @@ use Illuminate\Filesystem\Filesystem;
|
||||
final class CreateThemeCommand extends Command
|
||||
{
|
||||
protected $signature = 'stylist:create-theme {key : Lowercase theme key} {--parent=common : Parent theme key} {--name= : Display name}';
|
||||
|
||||
protected $description = 'Create a minimal child theme without copying shared views.';
|
||||
|
||||
public function __construct(private readonly Filesystem $files)
|
||||
@@ -20,12 +21,14 @@ final class CreateThemeCommand extends Command
|
||||
$key = strtolower(trim((string) $this->argument('key')));
|
||||
if (! preg_match('/^[a-z0-9][a-z0-9_-]*$/', $key)) {
|
||||
$this->error('Theme keys may contain lowercase letters, numbers, dashes, and underscores only.');
|
||||
|
||||
return self::FAILURE;
|
||||
}
|
||||
|
||||
$path = rtrim((string) config('stylist.themes_path'), '/\\').DIRECTORY_SEPARATOR.$key;
|
||||
if ($this->files->exists($path)) {
|
||||
$this->error("Theme [{$key}] already exists.");
|
||||
|
||||
return self::FAILURE;
|
||||
}
|
||||
|
||||
@@ -55,6 +58,7 @@ final class CreateThemeCommand extends Command
|
||||
|
||||
$this->info("Theme [{$key}] created at {$path}.");
|
||||
$this->line('Shared views will resolve through its parent; only add genuine overrides.');
|
||||
|
||||
return self::SUCCESS;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,6 +8,7 @@ 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)
|
||||
@@ -20,6 +21,7 @@ final class FindDuplicateViewsCommand extends Command
|
||||
$duplicates = $this->inspector->duplicateViews();
|
||||
if ($duplicates === []) {
|
||||
$this->info('No duplicate theme views found.');
|
||||
|
||||
return self::SUCCESS;
|
||||
}
|
||||
|
||||
@@ -32,6 +34,7 @@ final class FindDuplicateViewsCommand extends Command
|
||||
|
||||
$this->table(['View', 'Theme', 'Path'], $rows);
|
||||
$this->error(count($duplicates).' duplicate view task(s) found.');
|
||||
|
||||
return self::FAILURE;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,6 +8,7 @@ use Modules\Stylist\Diagnostics\ThemeInspector;
|
||||
final class InspectThemesCommand extends Command
|
||||
{
|
||||
protected $signature = 'stylist:inspect';
|
||||
|
||||
protected $description = 'Display installed themes, inheritance, entry views, and view counts.';
|
||||
|
||||
public function __construct(private readonly ThemeInspector $inspector)
|
||||
|
||||
@@ -7,6 +7,7 @@ use Illuminate\Console\Command;
|
||||
final class PublishAssetsCommand extends Command
|
||||
{
|
||||
protected $signature = 'stylist:publish-assets {--force : Overwrite the published configuration}';
|
||||
|
||||
protected $description = 'Publish the Stylist configuration and ensure resources/themes exists.';
|
||||
|
||||
public function handle(): int
|
||||
|
||||
@@ -8,6 +8,7 @@ use Modules\Stylist\Diagnostics\ThemeInspector;
|
||||
final class ThemeDoctorCommand extends Command
|
||||
{
|
||||
protected $signature = 'stylist:doctor';
|
||||
|
||||
protected $description = 'Diagnose manifests, inheritance, duplicate views, and theme configuration.';
|
||||
|
||||
public function __construct(private readonly ThemeInspector $inspector)
|
||||
@@ -20,6 +21,7 @@ final class ThemeDoctorCommand extends Command
|
||||
$issues = $this->inspector->issues();
|
||||
if ($issues === []) {
|
||||
$this->info('Stylist is healthy. No theme issues found.');
|
||||
|
||||
return self::SUCCESS;
|
||||
}
|
||||
|
||||
|
||||
@@ -37,6 +37,7 @@ final class ValidateThemeCommand extends Command
|
||||
|
||||
if ($issues === []) {
|
||||
$this->info('Theme validation passed with no issues.');
|
||||
|
||||
return self::SUCCESS;
|
||||
}
|
||||
|
||||
@@ -56,6 +57,7 @@ final class ValidateThemeCommand extends Command
|
||||
return $errors > 0 ? self::FAILURE : self::SUCCESS;
|
||||
} catch (\Throwable $exception) {
|
||||
$this->error($exception->getMessage());
|
||||
|
||||
return self::FAILURE;
|
||||
} finally {
|
||||
if ($temporary !== null) {
|
||||
@@ -75,7 +77,7 @@ final class ValidateThemeCommand extends Command
|
||||
$temporary = storage_path('app/stylist/validate-'.bin2hex(random_bytes(8)));
|
||||
$this->files->ensureDirectoryExists($temporary);
|
||||
|
||||
$zip = new ZipArchive();
|
||||
$zip = new ZipArchive;
|
||||
if ($zip->open($input) !== true) {
|
||||
throw new RuntimeException('The theme ZIP could not be opened.');
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user