Classe2photos-se3.sh

De OpenWikiBSD
Aller à : navigation, rechercher

Usage

Après avoir pris la série complète de photos individuelles de vos élèves, en tant que Prof principal, Soit vous envoyez à la main en renommant, redimensionnant les photos pour le trombinoscope élèves de se3, soit...

vous lancez Classe2photos-se3.sh en lui indiquant le nom de la classe et le répertoire contenant les photos. et c'est parti!

Syntaxe

./Classe2photos-se3.sh IdentifiantDeLaClasseAuSensGepi /chemin/du/rep/contenant/les/photos

  • Deux paramètres sont modifiables en interne:
    • REDIM pour choisir de redimensionner les photos
    • BORD pour ajouter un mignon petit bord bleu pour les garçons et rose pour les filles ;-)

Prérequis

  • params.txt Contient les paramètres MySQL et LDAP de mes différents scripts.
  • genre.sh Renvoie le sexe d'un uid

Vérifications préalables

  • La classe existe dans se3
  • Les élèves existent dans se3
  • Il y a autant d'élèves que de photos

Précautions à prendre

  • La série de photos doit être prise sans interruption, dans l'ordre alphabétique. Ce qui signifie qu'une photo de chaise vide doit être prise pour les absents.
  • L'extension des photos est forcément .JPG et pas .jpg!
  • Ne lancez pas deux scripts simultanés depuis le même répertoire. Aucune gestion concurrente pour le moment.

Script

#!/bin/bash
#GPL
# Fait par polyp
#14/10/08 Maj du 10/11/09
USAGE="Usage : ./Classes2Photos-se3.sh NomCLasse RepContenantLesPhotos avec l'extension .JPG
ATTENTION:Il doit y avoir autant de photos que d'élèves. Elles seront utilisées dans l'ordre"

# CHOIX
REDIM=1	# Mettre à 0 pour ne pas redimensionner les photos
BORD=1 # Mettre à 0 pour ne pas  ajouter  de bordure en fonction du sexe

# Récupération des paramètres depuis le fichier eponyme
FICPARAMS=/usr/script/params.txt
IPLDAP=`cat $FICPARAMS |grep IPLDAP|cut -d":" -f2`
BASEDN=`cat $FICPARAMS |grep BASEDN|cut -d":" -f2-99`
LDAPPASS=`cat $FICPARAMS |grep LDAPPASS|cut -d":" -f2`
ADMINLDAP=`cat $FICPARAMS |grep ADMINLDAP|cut -d":" -f2`
SQLUSER=`cat $FICPARAMS |grep SQLUSER |cut -d":" -f2`
SQLPASS=`cat $FICPARAMS |grep SQLPASS|cut -d":" -f2`
BDD=`cat $FICPARAMS |grep BDD|cut -d":" -f2`
REPDST=/var/se3/Docs/trombine
APACHESE=www-se3
UID2ELEO=/usr/script/uid2eleonet.sh
GENRE=/usr/script/genre.sh
CONV=/usr/bin/convert

#Lock
#PRNG=`/usr/script/prng.sh`
#PID=/var/run/Classe2Photo.$PRNG.pid
#touch $PID

if [ "$2" == "" ]
then echo $USAGE
	exit
else
	REP=$2
fi

#Trouver la classe :
# Normalmeent avec -S memberUid, le ldapsearch aurait du filtrer par ordre alphe....sort est mon ami!
CLASS=`/usr/bin/ldapsearch -h $IPLDAP -x  -b cn=Classe_$1,ou=Groups,$BASEDN  -D cn=admin,$BASEDN -w $LDAPPASS| grep memberUid|cut -d":" -f2|sort`

if [ "$CLASS" == "" ]
then 
	echo $USAGE
	echo  "Classe introuvable sur le serveur Gepi. Vérifiez la syntaxe"
	exit
fi

# Bon nombre de photos ?
CNTELEV=`/usr/bin/ldapsearch -h $IPLDAP -x  -b cn=Classe_$1,ou=Groups,$BASEDN  -D cn=admin,$BASEDN -w $LDAPPASS| grep memberUid|cut -d":" -f2|wc -l`
CNTPHOT=`ls $REP/*.JPG|wc -l `
if [ $CNTELEV != $CNTPHOT ]
then
	echo "Il y a $CNTELEV  eleves en $1 pour $CNTPHOT photos.."
	exit
fi

for  ELV in $CLASS
		do
				echo "Traitement de $ELV"	
				PHOT=`ls $REP/*.JPG |head -1`
				echo "$ELV a $PHOT pour photo"
				NEWPHOT=$REPDST/$ELV.jpg
				mv $PHOT $NEWPHOT
				if ( [ "$IM" == "1" ] && [ "$REDIM" == "1" ] )
				then
					# On réduit les photos a une centaine de ko
					$CONV $NEWPHOT -interlace line -resize 1500x -quality 50 $NEWPHOT
				fi
				
		
				if ( [ "$IM" == "1" ] && [ "$BORD" == "1" ] )
				then
					# On ajoute une bordure bleue pour les garcons, rose pour les filles ;-)
																				 	if [ "`$GENRE $ELV`" == "M" ] 
then COL=blue
fi
																					if [ "`$GENRE $ELV`" == "F" ] 
then COL=pink 
fi
																					$CONV $NEWPHOT  -bordercolor $COL -border 10 $NEWPHOT
																																				fi

																																				chown	$APACHESE.root $NEWPHOT
																																						done

Sortie