collectPaths(); $generated = 0; $skipped = 0; foreach ($paths as $path) { if (! Storage::disk($disk)->exists($path)) { $this->warn("Missing file: {$path}"); $skipped++; continue; } ResponsiveImage::generate($path, $disk); $generated++; $this->line("Generated variants for {$path}"); } $this->info("Done. Generated: {$generated}. Skipped: {$skipped}."); return self::SUCCESS; } /** * @return list */ private function collectPaths(): array { $paths = []; $settings = SiteSetting::query()->first(); if ($settings && filled($settings->default_og_image_path)) { $paths[] = (string) $settings->default_og_image_path; } if ($settings && filled($settings->about_image_path)) { $paths[] = (string) $settings->about_image_path; } foreach (Service::query()->whereNotNull('cover_image_path')->pluck('cover_image_path') as $path) { $paths[] = (string) $path; } foreach (PortfolioCase::query()->whereNotNull('cover_image_path')->pluck('cover_image_path') as $path) { $paths[] = (string) $path; } foreach (PortfolioImage::query()->whereNotNull('path')->pluck('path') as $path) { $paths[] = (string) $path; } foreach (Testimonial::query()->whereNotNull('photo_path')->pluck('photo_path') as $path) { $paths[] = (string) $path; } return array_values(array_unique($paths)); } }