#!/bin/bash
# Skrypt slideshow wyświetlający w formie pokazu slajdów
# zdjęcia zapisane we wskazanym katalogu. Skrypt wykorzystuje
# narzędzie display pakietu ImageMagick.

delay=2     # Domyślne opóźnienie w sekundach.
psize="1200x900>" # Domyślne wymiary wyświetlanych slajdów.

if [ $# -eq 0 ] ; then
  echo "Użycie: $(basename $0) katalog-zdjęć" >&2 ; exit 1
fi

watch="$1"

if [ ! -d "$watch" ] ; then
  echo "$(basename $0): nazwa $watch nie jest katalogiem." >&2 ; exit 1
fi

cd "$watch"

if [ $? -ne 0 ] ; then
  echo "$(basename $0): nie można przejść do katalogu $watch." >&2 ; exit 1
fi

suffixes="$(file * | grep image | cut -d: -f1 | rev | cut -d. -f1 | \
   rev | sort | uniq | sed 's/^/\*./')"

if [ -z "$suffixes" ] ; then
  echo "$(basename $0): katalog $watch nie zawiera obrazów." >&2 ; exit 1
fi

echo -n "Liczba wyświetlanych obrazów w katalogu $watch: $(ls $suffixes | wc -l)."
set -f ; echo "Rozszerzenia: $suffixes." ; set +f

display -loop 0 -delay $delay -resize $psize -backdrop $suffixes

exit 0
