#!/bin/bash

#Diseñado por Arturo Martín
#Proyecto Software Libre DGA

FICHFUNCS="/usr/bin/vx-funcs-bash"
[ -f "${FICHFUNCS}" ] && . "${FICHFUNCS}" "null"

# 1) Comprobamos que es el usuario root quien quiere ejecutar el programa, sino salimos:
vx-check_user_root "Se necesitan privilegios de root para regenerar directorios de usuarios específicos"

# 2) Preparamos la auditoria del servicio:
LOG="$(basename "${0}").log"
vx-log_xsession -o "${LOG}"

echo "=> $(date) - Se va a Regenerar los perfiles de los usuarios del sistema ..."

# Recogemos los usuarios enviados como parámetros:
USUARIOS="$*"

for USUARIO in ${USUARIOS}; do

	HOMEUSUARIO="$(vx-home-usuario "${USUARIO}")"
	BASE="/usr/share/vitalinux/skel/Escritorio/"
	if test -d "${BASE}"; then
		for DIR in "Escritorio" "Desktop" "Bureau" "Schreibtisch"; do
			if test -d "${HOMEUSUARIO}/${DIR}"; then
				if su "${USUARIO}" \
					-c 'rsync --delete -rl '${BASE}' '${HOMEUSUARIO}'/'${DIR} \
					--login &>/dev/null; then
					echo " --> OK: Se ha sincronizado el ${DIR} del usuario ${USUARIO} ..."
				else
					echo " --> ERROR: No se ha sincronizado el ${DIR} del usuario ${USUARIO} ..."
				fi
			fi
		done
	fi

	#BASE="$(su "${USUARIO}" -c 'mktemp -d --tmpdir vx-sincro-directorios.XXXXXXXX' --login)"
	## Definimos los distintos nombres de los directorios del perfil en los 4 idiomas principales:
	# Listas=(Español Inglés Alemán Francés)
	LISTADO_DIRECTORIOS=(Descargas:Downloads:Downloads:Téléchargements
		Documentos:Documents:Dokumente:Documents
		Imágenes:Pictures:Bilder:Images
		Vídeos:Videos:Videos:Vidéos
		Música:Music:Musik:Musique
		Plantillas:Templates:Vorlagen:Modèles
		Público:Public:Öffentlich:Public)

	for DIRS in "${LISTADO_DIRECTORIOS[@]}"; do
		SAVEIFS=${IFS}
		IFS=":"
		LISTA_DIR=($DIRS)
		BASE="/usr/share/vitalinux/skel/${LISTA_DIR[0]}/"
		if test -d "${BASE}"; then
			for DIR in ${LISTA_DIR[*]}; do
				echo "=> Se va a tratar de sincronizar el directorio: \"${DIR}\""
				if test -d "${HOMEUSUARIO}/${DIR}"; then
					if su "${USUARIO}" \
						-c 'rsync --delete -rl '${BASE}' '${HOMEUSUARIO}'/'${DIR} \
						--login >/dev/null 2>&1; then
						echo " --> OK: Se ha sincronizado el directorio ${DIR} del usuario ${USUARIO} ..."
					else
						echo " --> ERROR: No se ha sincronizado el directorio ${DIR} del usuario ${USUARIO} ..."
					fi
				fi
			done
		fi
		IFS=${SAVEIFS}
	done
done

exit 0
