Classe2photos-se3.sh
De OpenWikiBSD.
Sommaire |
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

