error("Source directory not found: {$sourcePath}"); return Command::FAILURE; } // Create destination directory if (! File::isDirectory($publicPath)) { File::makeDirectory($publicPath, 0755, true); } $copied = 0; $skipped = 0; $failed = 0; foreach ($config['devices'] as $deviceSlug => $device) { $deviceDir = "{$publicPath}/{$deviceSlug}"; if (! File::isDirectory($deviceDir)) { File::makeDirectory($deviceDir, 0755, true); } foreach ($device['variants'] as $variantSlug => $variant) { $extension = $device['format']; $sourceFile = "{$sourcePath}/{$device['path']}/{$variant['file']}.{$extension}"; $destFile = "{$deviceDir}/{$variantSlug}.{$extension}"; if (! File::exists($sourceFile)) { $this->warn("Source not found: {$sourceFile}"); $failed++; continue; } if (File::exists($destFile) && ! $this->option('force')) { $this->line("Skipping: {$deviceSlug}/{$variantSlug}.{$extension}"); $skipped++; continue; } File::copy($sourceFile, $destFile); $this->line("Copied: {$deviceSlug}/{$variantSlug}.{$extension}"); $copied++; } } $this->newLine(); $this->info("Done! Copied: {$copied}, Skipped: {$skipped}, Failed: {$failed}"); return Command::SUCCESS; } }