INPUT_DIR="./src/main/resources/static/zaklik-public-images" # Folder z oryginalnymi obrazami OUTPUT_DIR="./src/main/resources/static/zaklik-public-images-generated" # Główny folder do zapisu obrazów w nowych formatach # Iteracja po wszystkich plikach w katalogu wejściowym i jego podkatalogach find "$INPUT_DIR" -type f | while read -r file; do # Relatywna ścieżka pliku w katalogu wejściowym relative_path="${file#$INPUT_DIR/}" # Ścieżka do katalogu docelowego target_dir="$OUTPUT_DIR/$(dirname "$relative_path")" # Nazwa pliku bez rozszerzenia filename=$(basename "$file" | cut -f 1 -d '.') # Ścieżki docelowych plików w formatach WebP i AVIF webp_file="$target_dir/$filename.webp" avif_file="$target_dir/$filename.avif" # Sprawdzenie, czy oba pliki już istnieją if [ -f "$webp_file" ] && [ -f "$avif_file" ]; then echo "Pomijam plik: $file (już skompresowany)" continue fi # Tworzenie podkatalogu w katalogu docelowym mkdir -p "$target_dir" # Konwersja do WebP (jeśli plik nie istnieje) if [ ! -f "$webp_file" ]; then convert "$file" -quality 80 "$webp_file" echo "Skompresowano do WebP: $webp_file" fi # Konwersja do AVIF (jeśli plik nie istnieje) if [ ! -f "$avif_file" ]; then convert "$file" -quality 80 "$avif_file" echo "Skompresowano do AVIF: $avif_file" fi done echo "Konwersja zakończona."