#!/bin/bash #set -x # Script para copiar ciertas carpetas de Skrapper ## Comprueba los parametros if [ "$#" -lt 2 ]; then printf "Uso: %s SOURCEDIR DESTDIR\n" "$(basename "$0")" exit 0 else readonly ORIGEN="$1" readonly DESTINO="$2" fi # Comprueba que exista el directorio de origen if [ ! -d "$1" ]; then printf "El directorio %s no existe\n" "$1" exit 0 fi # Si no existe, crea el directorio de destino if [ ! -d "$2" ]; then mkdir -p "$2" fi # Colores WHITE=$(tput setaf 7) BLUE_BG=$(tput setab 4) LIME_YELLOW=$(tput setaf 190) NORMAL=$(tput sgr0) BOLD=$(tput bold) MEDIA="cover title screenshot" readonly MEDIA # Crea la carpeta de destino mkdir -p "${DESTINO}" # Procesa todas las carpetas for ITEM in "${ORIGEN}"/*; do # Obten el nombre del sistema y lo imprime en pantalla SISTEMA=$(basename "${ITEM}") printf "\n\n%s\n" "${BOLD}${WHITE}${BLUE_BG} ${SISTEMA} ${NORMAL}" # Procesa la lista de carpetas for CARPETA in $MEDIA; do printf "\n%s\n" "${BOLD}${LIME_YELLOW}${CARPETA}${NORMAL}" # Crea el directorio de destino donde copiarlo todo mkdir -p "${DESTINO}/${SISTEMA}/${CARPETA}" # Copia las imagenes rsync -avh --delete --chmod=755 "${ITEM}"/"${CARPETA}/" "${DESTINO}/${SISTEMA}/${CARPETA}/" # Copia el gamelist.xml rsync -avh --delete --chmod=755 "${ITEM}"/gamelist.xml "${DESTINO}/${SISTEMA}/" # Calcula el numero de subcarpetas NUM_SUBCARPETAS=$(find "${DESTINO}/${SISTEMA}/${CARPETA}" -mindepth 1 -type d | wc -l) # Si existen subcarpetas if [ "$NUM_SUBCARPETAS" != 0 ]; then # Busca todos los ficheros en la carpeta y subcarpeta y los mueve a la raĆ­z find "${DESTINO}/${SISTEMA}/${CARPETA}" -type f -exec mv {} "${DESTINO}/${SISTEMA}/${CARPETA}" \; # Borra las subcarpetas find "${DESTINO}/${SISTEMA}/${CARPETA}" -mindepth 1 -type d -exec rm -rdf {} \; fi # Cambia el propietario de los archivos chown sergio:sergio "${DESTINO}/${SISTEMA}/${CARPETA}/"* done done