#!/bin/bash

# Carica l'elenco dei siti dal file __sites_list.sh
source __sites_list.sh

# Verifica se la variabile 'sites' è un array
if [[ ! ${sites[@]} ]]; then
  echo "Errore: La variabile 'sites' non è definita o non è un array."
  exit 1
fi

# Itera su ogni sito nell'array 'sites'
for s in "${sites[@]}"; do
  dir="__$s"
  if [[ -d "$dir" ]]; then
    echo "Rimuovo la directory: $dir"
    rmdir "$dir"
    if [[ $? -ne 0 ]]; then
      echo "Errore: Impossibile rimuovere la directory $dir."
    fi
 # else
    # echo "La directory $dir non esiste."
  fi
done

# Verifica se la variabile 'site' è vuota
if [[ -z "$site" ]]; then
  echo "Lancio senza Parametri!"
else
  echo "TERMINA DI LAVORARE SU $site: (Sovrascrivo!)"
  echo "TERMINA DI LAVORARE SU $site: (Sovrascrivo!)" > now.txt

  # Definisce il percorso di backup
  backup_dir="../../_BAK/5/$site"
  mkdir -p "$backup_dir"

  # Copia il sito nella directory di backup
  cp -R "_ALL_SITES/$site" "$backup_dir/"
  if [[ $? -ne 0 ]]; then
    echo "Errore: Impossibile copiare _ALL_SITES/$site in $backup_dir."
  fi

  # Rimuovi le cartelle attuali in modo sicuro
  rem_dirs=("_ALL_SITES/$site/public/images"  "_ALL_SITES/$site/public/myicons" "_ALL_SITES/$site/public/js" "_ALL_SITES/$site/public/workbox")

  for dir in "${rem_dirs[@]}"; do
    [[ -d "$dir" ]] && rm -rf "$dir"/*
  done



  # Elenco dei file e directory da copiare
  items_to_copy=(
    "public"                  # Directory
    "src/db"                  # Directory
    "src-pwa/manifest.json"   # File
    "package.json"            # File
    ".env.development"        # File
    ".env.production"         # File
    ".env.test"               # File
  )

  # Copia ciascun elemento nella directory del sito
  for item in "${items_to_copy[@]}"; do
    source_path="../$item"
    destination_path="_ALL_SITES/$site/$item"

    if [[ -e "$source_path" ]]; then
      if [[ -d "$source_path" ]]; then
        # Se è una directory, assicurati che la directory di destinazione esista
        echo "Creazione directory: $destination_path"
        mkdir -p "$destination_path"

        # Copia il contenuto della directory direttamente nella destinazione
        echo "Copying directory content: $source_path -> $destination_path"
        cp -Rv "$source_path/." "$destination_path/"
      else
        # Se è un file, assicurati che la directory genitore di destinazione esista
        parent_dir=$(dirname "$destination_path")
        echo "Creazione directory genitore: $parent_dir"
        mkdir -p "$parent_dir"

        # Copia il file
        echo "Copia file: $source_path -> $destination_path"
        cp -v "$source_path" "$destination_path"
        if [[ $? -ne 0 ]]; then
          echo "Errore: Impossibile copiare $source_path in $destination_path."
        fi
      fi
    else
      echo "Avviso: $source_path non esiste e non sarà copiato."
    fi
  done
fi
