annotate src/Console/InstallsBladeStack.php @ 0:90e38de8f2ba

Initial Commit
author luka
date Wed, 13 Aug 2025 22:17:20 -0400
parents
children a2a3059de103
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
1 <?php
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
2
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
3 namespace Wizard\Auth\Console;
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
4
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
5 use Illuminate\Filesystem\Filesystem;
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
6 use Symfony\Component\Finder\Finder;
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
7
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
8 trait InstallsBladeStack
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
9 {
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
10 /**
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
11 * Install the Blade Breeze stack.
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
12 *
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
13 * @return int|null
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
14 */
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
15 protected function installBladeStack()
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
16 {
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
17 // NPM Packages...
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
18 $this->updateNodePackages(function ($packages) {
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
19 return [
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
20 "@popperjs/core" => "^2.11.8",
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
21 "bootstrap" => "^5.3.0",
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
22 ] + $packages;
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
23 });
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
24
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
25 // Controllers...
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
26 (new Filesystem)->ensureDirectoryExists(app_path('Http/Controllers'));
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
27 (new Filesystem)->copyDirectory(__DIR__.'/../../stubs/default/app/Http/Controllers', app_path('Http/Controllers'));
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
28
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
29 // Requests...
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
30 (new Filesystem)->ensureDirectoryExists(app_path('Http/Requests'));
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
31 (new Filesystem)->copyDirectory(__DIR__.'/../../stubs/default/app/Http/Requests', app_path('Http/Requests'));
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
32
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
33 // Views...
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
34 (new Filesystem)->ensureDirectoryExists(resource_path('views'));
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
35 (new Filesystem)->copyDirectory(__DIR__.'/../../stubs/default/resources/views', resource_path('views'));
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
36
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
37 if (! $this->option('dark')) {
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
38 $this->removeDarkClasses((new Finder)
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
39 ->in(resource_path('views'))
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
40 ->name('*.blade.php')
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
41 ->notPath('livewire/welcome/navigation.blade.php')
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
42 ->notName('welcome.blade.php')
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
43 );
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
44 }
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
45
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
46 // Components...
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
47 (new Filesystem)->ensureDirectoryExists(app_path('View/Components'));
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
48 (new Filesystem)->copyDirectory(__DIR__.'/../../stubs/default/app/View/Components', app_path('View/Components'));
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
49
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
50 // Tests...
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
51 if (! $this->installTests()) {
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
52 return 1;
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
53 }
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
54
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
55 // Routes...
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
56 copy(__DIR__.'/../../stubs/default/routes/web.php', base_path('routes/web.php'));
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
57 copy(__DIR__.'/../../stubs/default/routes/auth.php', base_path('routes/auth.php'));
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
58
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
59 // "Dashboard" Route...
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
60 $this->replaceInFile('/home', '/dashboard', resource_path('views/welcome.blade.php'));
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
61 $this->replaceInFile('Home', 'Dashboard', resource_path('views/welcome.blade.php'));
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
62
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
63 // Tailwind / Vite...
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
64 copy(__DIR__.'/../../stubs/default/tailwind.config.js', base_path('tailwind.config.js'));
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
65 copy(__DIR__.'/../../stubs/default/postcss.config.js', base_path('postcss.config.js'));
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
66 copy(__DIR__.'/../../stubs/default/vite.config.js', base_path('vite.config.js'));
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
67 copy(__DIR__.'/../../stubs/default/resources/css/app.css', resource_path('css/app.css'));
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
68 copy(__DIR__.'/../../stubs/default/resources/js/app.js', resource_path('js/app.js'));
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
69
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
70 $this->components->info('Installing and building Node dependencies.');
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
71
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
72 if (file_exists(base_path('pnpm-lock.yaml'))) {
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
73 $this->runCommands(['pnpm install', 'pnpm run build']);
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
74 } elseif (file_exists(base_path('yarn.lock'))) {
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
75 $this->runCommands(['yarn install', 'yarn run build']);
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
76 } elseif (file_exists(base_path('bun.lock')) || file_exists(base_path('bun.lockb'))) {
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
77 $this->runCommands(['bun install', 'bun run build']);
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
78 } elseif (file_exists(base_path('deno.lock'))) {
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
79 $this->runCommands(['deno install', 'deno task build']);
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
80 } else {
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
81 $this->runCommands(['npm install', 'npm run build']);
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
82 }
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
83
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
84 $this->line('');
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
85 $this->components->info('Breeze scaffolding installed successfully.');
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
86 }
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
87 }