Proyecto

General

Perfil

#!/bin/sh

# Tiene de entrada un fichero de alumnos descargado de rayuela. Elimina de dicho fichero
# los alumnos que ya est?n en ldap, de tal manera que quedan solamente los nuevos alumnos.
# Este script debe estar en el mismo directorio que el archivo .zip de exportacion
# de alumnos de Rayuela mas reciente (bueno, cualquiera vale, pero lo suyo es tener
# los alumnos al dia).
# Funcionamiento : genexpal.sh Exportacion_Mas_Reciente.zip


rm -f Alumnos_nuevos.xml
rm -r ./NuevaExportacion

clear

echo -n "Contraseña de administrador de la BBDD ldap:"
read pwd


if [ $# -lt 1 ]; then
echo
echo Funcionamiento : genexpal.sh Exportacion_Mas_Reciente.zip
ls -lh
exit 1
fi

if [ ! -f $1 ]; then
echo
echo Funcionamiento : genexpal.sh Exportacion_Mas_Reciente.zip
echo Y ademas tiene que existir $1.
ls -lh
exit 1
fi

error=`unzip -t $1 | grep "No errors detected"`

if [ "$error" = "" ]; then
echo
echo Errores en fichero comprimido $1, abortando...
exit 1
fi

unzip -o $1 -d ./NuevaExportacion/

# Sacamos los nie para no hacer grep sobre un fichero tan gordo todo el tiempo
ldapsearch -w $pwd -xLLL -h ldap -b "ou=People,dc=instituto,dc=extremadura,dc=es" homeDirectory| tr '\n' ' ' | sed 's/dc=es/dc=es\n/g' | grep alumnos | tr '/' ' '| cut -d" " -f6 > estudiantes
#ldapsearch -w $pwd -xLLL -h ldap -b "cn=students,ou=Group,dc=instituto,dc=extremadura,dc=es" member | tr '=,' ' ' | cut -d" " -f3 > estudiantes

while read ident
do
ldapsearch -w $pwd -xLLL -h ldap -b "uid=$ident,ou=People,dc=instituto,dc=extremadura,dc=es" employeeNumber | grep employeeNumber | cut -d" " -f2 >> nies_existentes
done < estudiantes


# Estas tonter?as son para el porcentaje
total_lineas=`wc -l ./NuevaExportacion/Alumnos.xml | cut -d" " -f1`
lineas=1

# Variable de guarda, para saber cu?ndo copiar
copiar=si

clear

echo Empezamos, esto va a tardar un ratillo...

while [ $lineas -le $total_lineas ]
do
linea=`head -$lineas ./NuevaExportacion/Alumnos.xml | tail -1`
etiqueta=`echo $linea | tr '<' '>' | cut -d">" -f2`

tpc=`expr $lineas \* 100 / $total_lineas`
echo -n "Procesando l?nea $lineas...$tpc% completado..."
echo -ne "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b"
lineas=`expr $lineas + 1`

if [ "$etiqueta" = "nie" ]; then
valor_nies=`echo $linea | tr '<' '>' | cut -d">" -f3`
if [ "`grep -c "$valor_nies" nies_existentes`" != "0" ]; then
copiar=no
else
copiar=si
echo "<alumno>" >> Alumnos_nuevos.xml
fi
fi

if [ "$copiar" = "si" -a "$etiqueta" != "alumno" ]; then
echo "$linea" >> Alumnos_nuevos.xml
fi

if [ "$copiar" = "no" -a "$etiqueta" = "nombre-fichero" ]; then
fichero_foto=`echo $linea | tr '<' '>' | cut -d">" -f3`
rm -f ./NuevaExportacion/$fichero_foto
fi

if [ "$copiar" = "no" -a "$etiqueta" = "/alumno" ]; then
copiar=si
fi

done

rm -f nies_existentes
#iconv -t ISO_8859-1//TRANSLIT Alumnos_nuevos.xml -o ./NuevaExportacion/Alumnos.xml
cp -f Alumnos_nuevos.xml ./NuevaExportacion/Alumnos.xml
rm -f Alumnos.xml
rm -f estudiantes

cd ./NuevaExportacion
nuevaexp="NuevaExportacionAlumnos`date +%y%m%d`"
zip ../$nuevaexp *
cd ..
rm -r ./NuevaExportacion
echo
echo Exportacion generada : $nuevaexp.zip
echo Contiene `grep -c "<alumno>" Alumnos_nuevos.xml` nuevos alumnos para incluir.
rm -f Alumnos_nuevos.xml

(7-7/13)