#!/bin/bash
##################################################################
# Transfert des dossiers perso
# Sicep - Fred P. - Novembre 2011
##################################################################

# Declaration des variables
home_source="/home"
home_rech="/home/workgroups"
liste_fichiers="liste_fichiers.log"
passage=0
fich_tempo=/tmp/fichier_user.tmp
date=`date`
#effacer le fichier de log avant de commencer ?
che_log=/var/log/sicep
fichier_log=/var/log/sicep/recherche-fich-users.log
chemin=0
drive=0
i=1
nbr_tab=0
# debut du script
#################################################
# test de la presence de /var/log/sicep
if [ -d $che_log ]
then
	echo $date > $fichier_log
	echo >> $fichier_log
	echo "========== debut de la recherche =========" >> $fichier_log
else
	mkdir $che_log
	echo $date > $fichier_log
	echo >> $fichier_log
	echo "========== debut de la recherche =========" >> $fichier_log
fi



#################################################
# récupération des mappages

mappage=`ldapsearch -x | grep -B 2 sambaShareDrive`
for ligne in $mappage
do
	if [ $chemin == 1 ]
	then
		tableau[i]=$ligne
		let i=i+1
		chemin=0
	fi
	if [ $drive == 1 ]
	then
		tableau[i]=$ligne
		drive=0
		let i=i+1
	fi
	if [ $ligne = "sambaFilePath:" ]
	then
		chemin=1
	fi
	if [ $ligne = "sambaShareDrive:" ]
	then
		drive=1
	fi
done
nbr_tab=$i




#################################################
# début de la recherche

ldapsearch -x cn=DomainUsers|grep memberUid|awk '{print $2}'|while read i;
do
	let nb_user=nb_user+1
	echo $nb_user > $fich_tempo
done
nb_user=$(cat $fich_tempo)
rm -f $fich_tempo

ldapsearch -x cn=DomainUsers|grep memberUid|awk '{print $2}'|while read i;
do
	let passage=passage+1
	echo >> $fichier_log
	echo "--------------------------------------" >> $fichier_log
#pour un affichage l'écran de l'utilisateur en cours de recherche : décommenter [echo "$passage / $nb_user $i"]
#	echo "$passage / $nb_user $i"
	echo $i >> $fichier_log

# test si l'utilisateur a un dossier perso
	if [ -d $home_source/${i:0:1}/$i ]
	then
		echo "le dossier $home_source/${i:0:1}/$i est présent" >> $fichier_log
		dos1="$home_source/${i:0:1}/$i"
		che1=1
	else
		echo "Pas de dossier perso pour $i" >> $fichier_log
		che1=0
	fi

# s'il existe un dossier perso pour l'utilisateur
	if [[ ($che1 == 1) ]]
	then
		echo "fichier de  destination : $home_source/${i:0:1}/$i/perso/$liste_fichiers" >> $fichier_log
		echo $date > $home_source/${i:0:1}/$i/perso/$liste_fichiers
		echo "Liste de vos fichiers personnels stockés sur le serveur pédagogique." >> $home_source/${i:0:1}/$i/perso/$liste_fichiers
		echo "Ne sont pas listés ici les fichiers contenus dans u:\ " >> $home_source/${i:0:1}/$i/perso/$liste_fichiers
		echo "-----------" >> $home_source/${i:0:1}/$i/perso/$liste_fichiers
		#find $home_rech ! -regex ".*/\..*" -user $i -type f | sed -e "s+`echo $home_rech/`++" >> $home_source/${i:0:1}/$i/perso/$liste_fichiers
		find $home_rech ! -regex ".*/\..*" -user $i -type f  -exec ls -Glh {} \; | awk '{print $5 " " $6 " " $7 " " $8 " " $9 " " $10 " " $11 " " $12 " -> " $4}' >> $home_source/${i:0:1}/$i/perso/$liste_fichiers
		#fichier=`find $home_rech ! -regex ".*/\..*" -user $i -type f`
		#find $home_rech ! -regex ".*/\..*" -user $i -type f
		# traitement pour affichage dans le fichier de log de l'utilisateur
		#for ligne in $fichier
		#do
	#		echo $ligne
	#		j=1
	#		echo $ligne | grep ${tableau[$j]}
	#		if [ $? == 0 ]
	#		then
	#			echo ${tableau[$j+1]} $ligne
	#		fi
	#	done



	else
		echo "Pas de dossier destination pour $i !!!!" >> $fichier_log
	fi

	j=1
#	cp $home_source/${i:0:1}/$i/perso/$liste_fichiers /tmp/liste-fichiers.tmp
	while [ $j -lt $nbr_tab ]
	do
		che_sub=${tableau[$j]}
		lettre_sub=${tableau[$j+1]}
		cat $home_source/${i:0:1}/$i/perso/$liste_fichiers | sed -e "s+$che_sub+$lettre_sub+g" > /tmp/liste-fichiers.tmp
		cp /tmp/liste-fichiers.tmp $home_source/${i:0:1}/$i/perso/$liste_fichiers
		let j=j+2
	done
	cat $home_source/${i:0:1}/$i/perso/$liste_fichiers | sed -e "s+/home/workgroups+S:+g" > /tmp/liste-fichiers.tmp
	sed 's#\/#\\#g' /tmp/liste-fichiers.tmp > $home_source/${i:0:1}/$i/perso/$liste_fichiers
  cp $home_source/${i:0:1}/$i/perso/$liste_fichiers /var/www/html/outils/quotas/log/$i.log
#	cp /tmp/liste-fichiers.tmp $home_source/${i:0:1}/$i/perso/$liste_fichiers
done

chown -R root:www-data /var/www/html/outils/quotas/log/
chmod -R 2750 /var/www/html/outils/quotas/log/

echo >> $fichier_log
echo "--------------------------------------" >> $fichier_log
echo `date` >> $fichier_log
exit 0
