#!/bin/bash
# VIVÜ-fényképek becsomagolása a TESZT szerveren - már az ÉLES szerver végleges útvonalaival.
# Futtatás az alkalmazás mappájában (ahol az "uploads" mappa van):   bash vivu_fajlok_csomagolas.sh
# Eredmény: /tmp/vivu_fajlok.tar.gz  (az éles szerveren az ALKALMAZÁS MAPPÁJÁBAN kell kicsomagolni: tar xzf vivu_fajlok.tar.gz)
# A csomagban van egy vivu_manifest.sha256 is az ellenőrzéshez. A szkript csak olvas, a /tmp-ben dolgozik.
set -u
LISTA=$(mktemp)
cat > "$LISTA" <<'LISTAVEGE'
uploads/6/vivu/2/20260911155633_0_0_IMG_2016.jpg|uploads/2/vivu/2/20260911155633_0_0_IMG_2016.jpg
uploads/6/vivu/2/20260911155633_0_1_IMG_2037.jpg|uploads/2/vivu/2/20260911155633_0_1_IMG_2037.jpg
uploads/6/vivu/2/20260911155633_1_0_IMG_2011.jpg|uploads/2/vivu/2/20260911155633_1_0_IMG_2011.jpg
uploads/6/vivu/2/20260911155633_2_0_IMG_2013.jpg|uploads/2/vivu/2/20260911155633_2_0_IMG_2013.jpg
uploads/6/vivu/2/20260911155633_6_0_IMG_2004.jpg|uploads/2/vivu/2/20260911155633_6_0_IMG_2004.jpg
uploads/6/vivu/2/20260911155633_6_1_IMG_2005.jpg|uploads/2/vivu/2/20260911155633_6_1_IMG_2005.jpg
uploads/6/vivu/2/20260911155633_6_2_IMG_2006.jpg|uploads/2/vivu/2/20260911155633_6_2_IMG_2006.jpg
uploads/6/vivu/2/20260911155634_6_3_IMG_2018.jpg|uploads/2/vivu/2/20260911155634_6_3_IMG_2018.jpg
uploads/6/vivu/2/20260911155634_8_0_IMG_2035.jpg|uploads/2/vivu/2/20260911155634_8_0_IMG_2035.jpg
uploads/6/vivu/2/20260911155634_8_1_IMG_2036.jpg|uploads/2/vivu/2/20260911155634_8_1_IMG_2036.jpg
uploads/6/vivu/2/20260911155635_12_0_IMG_2031.jpg|uploads/2/vivu/2/20260911155635_12_0_IMG_2031.jpg
uploads/6/vivu/2/20260911155635_12_1_IMG_2034.jpg|uploads/2/vivu/2/20260911155635_12_1_IMG_2034.jpg
uploads/6/vivu/2/20260913151332_karb_11_0_IMG_2016.jpg|uploads/2/vivu/2/20260913151332_karb_11_0_IMG_2016.jpg
uploads/6/vivu/2/20260913152527_karb_uj1_0_IMG_2026.jpg|uploads/2/vivu/2/20260913152527_karb_uj1_0_IMG_2026.jpg
uploads/6/vivu/2/20260913152527_karb_uj1_1_IMG_2027.jpg|uploads/2/vivu/2/20260913152527_karb_uj1_1_IMG_2027.jpg
uploads/6/vivu/2/20260913152527_karb_uj1_2_IMG_2028.jpg|uploads/2/vivu/2/20260913152527_karb_uj1_2_IMG_2028.jpg
uploads/6/vivu/2/20260913152528_karb_uj1_3_IMG_2029.jpg|uploads/2/vivu/2/20260913152528_karb_uj1_3_IMG_2029.jpg
LISTAVEGE
MUNKA=$(mktemp -d); TAR_LISTA="$MUNKA/tar_lista"; TRANSFORMOK=(); HIANY=0; VAN=0
: > "$TAR_LISTA"; : > "$MUNKA/vivu_manifest.sha256"
while IFS='|' read -r REGI UJ; do
  [ -z "$REGI" ] && continue
  if [ -f "$REGI" ]; then
    echo "$REGI" >> "$TAR_LISTA"; VAN=$((VAN+1))
    H=$(sha256sum "$REGI" | cut -d' ' -f1); echo "$H  $UJ" >> "$MUNKA/vivu_manifest.sha256"
    echo "s|^${REGI//./\.}\$|$UJ|" >> "$MUNKA/transform"
  else
    echo "HIÁNYZIK a lemezről: $REGI  (a kép az éles szerveren sem fog megjelenni)"; HIANY=$((HIANY+1))
  fi
done < "$LISTA"
echo "Hivatkozott fájlok: $((VAN+HIANY)) db, megvan: $VAN, hiányzik: $HIANY"
if [ "$VAN" -gt 0 ]; then
  ARGS=(); while IFS= read -r T; do ARGS+=(--transform "$T"); done < "$MUNKA/transform"
  rm -f /tmp/vivu_fajlok.tar /tmp/vivu_fajlok.tar.gz
  tar cf /tmp/vivu_fajlok.tar "${ARGS[@]}" -T "$TAR_LISTA" && tar rf /tmp/vivu_fajlok.tar -C "$MUNKA" vivu_manifest.sha256 && gzip -f /tmp/vivu_fajlok.tar
  ls -l /tmp/vivu_fajlok.tar.gz; sha256sum /tmp/vivu_fajlok.tar.gz
  echo "A csomag tartalma (célútvonalak):"; tar tzf /tmp/vivu_fajlok.tar.gz
fi
rm -rf "$LISTA" "$MUNKA"
