#!/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"