#!/bin/bash
# Skript na synchronizáciu zvolených formátov, vrátane symbolických odkazov

# Výber zdrojového adresára pomocou Zenity
SRC_DIR=$(zenity --file-selection --directory --title="Vyberte zdrojový adresár")

# Ak zrušíte výber, skript skončí
if [ -z "$SRC_DIR" ]; then
    zenity --error --text="Zdrojový adresár nebol zadaný. Skript sa ukončuje."
    exit 1
fi

# Výber cieľového adresára pomocou Zenity
DEST_DIR=$(zenity --file-selection --directory --title="Vyberte cieľový adresár")

# Ak zrušíte výber, skript skončí
if [ -z "$DEST_DIR" ]; then
    zenity --error --text="Cieľový adresár nebol zadaný. Skript sa ukončuje."
    exit 1
fi

# Výber formátov súborov pomocou zaškrtávacieho okna
FORMATS=$(zenity --list --checklist --title="Vyberte formáty súborov" \
    --text="Zaškrtnite formáty súborov, ktoré chcete synchronizovať:" \
    --column="Vybrať" --column="Formát súboru" \
    TRUE "*.m3u" \
    TRUE "*.m4a" \
    TRUE "*.opus" \
    TRUE "*.mp3")

# Ak formáty nie sú zadané, skript skončí
if [ -z "$FORMATS" ]; then
    zenity --error --text="Formáty súborov neboli zadané. Skript sa ukončuje."
    exit 1
fi

# Vytvorenie príkazu rsync s dynamickými vstupmi
RSYNC_CMD="rsync -h --progress --stats -r -tgo -p -l -D -L --update --delete-after"

# Spracovanie formátov súborov (oddelenie čiarok od Zenity)
IFS='|' read -ra SELECTED_FORMATS <<< "$FORMATS"
for FORMAT in "${SELECTED_FORMATS[@]}"; do
    RSYNC_CMD+=" --include=$FORMAT"
done

# Pridanie pravidiel na zahrnutie adresárov a vylúčenie ostatných súborov
RSYNC_CMD+=" --include=*/ --exclude=* --prune-empty-dirs"

# Spustenie príkazu rsync
$RSYNC_CMD "$SRC_DIR/" "$DEST_DIR/"

# Oznámenie o dokončení
zenity --info --text="Synchronizácia bola úspešne dokončená!"
