16 oct 2015

Script para crear cuentas de profesores en mediagoblin a partir del fichero de exportación de Rayuela

Hace tiempo escribí un post explicando como instalar mediagoblin para disponer de una plataforma que permita a nuestros usuarios subir y poder visualizar vídeos y otros archivos multimedia que se usan habitualmente en el centro. 

Mediagoblin permite reproducir los archivos multimedia mediante un navegador a cualquier usuario que acceda al servidor, pero tan sólo permite subir contenidos a aquellos usuarios que tengan creada una cuenta en el servidor.

Como sé que varios compañeros montaron Mediagoblin en su centro siguiendo las instrucciones que publiqué, he pensado que les podría venir bien el script que he escrito para crear una cuenta a cada uno de los profesores del centro en el servidor Mediagoblin de forma automatizada a partir del fichero de exportación de datos de profesorado .xml que genera la plataforma Rayuela:

creacuentasmediagoblin.sh
#!/bin/bash
#
# Script para crear cuentas de profesores en mediagoblin a partir del fichero de Exportación de Datos
# de profesores generado por Rayuela.
# Observación: Colocar este script en el directorio de mediagoblin
# Esteban M. Navas Martín
# 16/10/2015

PROFESORESXML="ExportacionDatosProfesorado.xml"
PROFESORESCSV="profesoresrayuela.csv"

dominio="iesvalledeljerteplasencia.es"

# Instalamos xmlstarlet si no estaba instalado
dpkg -l | grep ^"ii xmlstarlet" > /dev/null || echo "Es necesario instalar el paquete xmlstarlet"

# Obtenemos la lista de profesores a partir del xml obtenido de Rayuela
xmlstarlet sel -t -m "/profesorado-centro/profesor" -v "concat(dni,':',nombre,':',primer-apellido,' ',segundo-apellido,':',departamento,':')" -m "datos-usuario-rayuela" -v "login" -n $PROFESORESXML | sed '/^$/d' > $PROFESORESCSV

while read LINEA ;do
nombre=`echo $LINEA | awk -F":" '{print $2}'`
apellidos=`echo $LINEA | awk -F":" '{print $3}'`
login=`echo $LINEA | awk -F":" '{print $5}' | sed 'y/áÁàÀãÃâÂéÉêÊíÍóÓõÕôÔúÚñÑçÇ/aAaAaAaAeEeEiIoOoOoOuUnNcC/'`
email="$login@$dominio"
password=`echo $LINEA | awk -F":" '{print $1}'`

if [ $login ]; then
echo "Creando usuario mediagoblin $login con password $password y email $email"
./bin/gmg adduser -u $login -p $password -e $email
else
echo "$nombre $apellidos no tiene login" > profesoressinlogin.log
fi
done < $PROFESORESCSV
Para utilizarlo, tan sólo tenéis que colocar el script y el fichero ExportacionDatosProfesorado.xml en el directorio de mediagoblin y ejecutarlo.
https://copy.com/6PDZ9cqOSxGct9q9

Publicado por primera vez en http://enavas.blogspot.com.es

La forma más sencilla de quitar acentos, eñes y cedillas en bash

En Linux hay muchas formas de lograr el mismo resultado. No obstante creo que la forma más sencilla de quitar acentos, eñes y cedillas en bash es utilizar el comando 'y' de 'sed':
$ sed -i 'y/áÁàÀãÃâÂéÉêÊíÍóÓõÕôÔúÚñÑçÇ/aAaAaAaAeEeEiIoOoOoOuUnNcC/' fichero
Si consultáis la ayuda de 'sed', veréis que el comando 'y' cambia cada caracter del patrón de búsqueda por el caracter correspondiente en el patrón de sustitución, de tal forma que:
  • La á se reemplazará por una a.
  • La Á se reemplazará por una A.
  • La à se reemplazará por una a.
  • Y así sucesivamente... Cada caracter del patrón fuente se sustituirá por el caracter en la misma posición del patrón en el destino.
Publicado por primera vez en http://enavas.blogspot.com.es