#!/usr/bin/python
# -*- coding: utf-8 -*-
# fede diaz aka nordri (nordri en gmail dot com)
# Programilla que me avisa de versiones nuevas en los documentos de Gentoo.

import os
from xml.dom.minidom import parse

mens = open("/tmp/mens.txt", "w")
mens.write("Resumen de las versiones de la documentación\n")

# Actualizamos el repositorio
cvs = os.system("cd /home/nordri/Cosas/linux/docs &&" \
"cvs -d :pserver:anonymous@anoncvs.gentoo.org/var/cvsroot co gentoo")

# Recibe una lista de nodos del árbol xml y devuelve el texto del campo.
def getText(nodelist):
rc = ""
for node in nodelist:
if node.nodeType == node.TEXT_NODE:
rc = rc + node.data
return rc

# Controla si hay nuevas versiones
nuevasVersiones = 0

CVSPATH = '/home/nordri/Cosas/linux/docs/gentoo/xml/htdocs/doc'

if cvs == 0: # Si la sincronización ha sido correcta

# Versiones de xfce
vxfce_en = getText(((parse(CVSPATH + '/en/xfce-config.xml')).getElementsByTagName('version'))[0].childNodes)
vxfce_es = getText(((parse(CVSPATH + '/es/xfce-config.xml')).getElementsByTagName('version'))[0].childNodes)

if vxfce_en != vxfce_es:
mens.write("Las versiones de xfce no coinciden" + vxfce_en, vxfce_es)
nuevasVersiones = 1

# Versiones de gcc
vgcc_en = getText(((parse(CVSPATH + '/en/gcc-optimization.xml')).getElementsByTagName('version'))[0].childNodes)
vgcc_es = getText(((parse(CVSPATH + '/es/gcc-optimization.xml')).getElementsByTagName('version'))[0].childNodes)

if vgcc_en != vgcc_es:
mens.write("Las versiones de gcc no coinciden" + vgcc_en, vgcc_es)
nuevasVersiones = 1

# Versiones de Bluetooth
vblue_en = getText(((parse(CVSPATH + '/en/bluetooth-guide.xml')).getElementsByTagName('version'))[0].childNodes)
vblue_es = getText(((parse(CVSPATH + '/es/bluetooth-guide.xml')).getElementsByTagName('version'))[0].childNodes)

if vblue_en != vblue_es:
mens.write("Las versiones de bluetooth no coinciden" + vblue_en, vblue_es)
nuevasVersiones = 1

# Versiones de Xen
vxen_en = getText(((parse(CVSPATH + '/en/xen-guide.xml')).getElementsByTagName('version'))[0].childNodes)
vxen_es = getText(((parse(CVSPATH + '/en/xen-guide.xml')).getElementsByTagName('version'))[0].childNodes)

if vxen_en != vxen_es:
mens.write("Las versiones de xen no coinciden" + vxen_en, vxen_es)
nuevasVersiones = 1

else:
mens.write("Error de sincronización con el cvs. Se aborta la operacion")

mens.close()

# Enviamos un correo si hay versiones nuevas.
if nuevasVersiones:
os.system("cat /tmp/mens.txt | email -s \"Nuevas versiones de la documentacion\" nordri_gmail.com"