miércoles, 2 de julio de 2008

Un script básico en Python

Desde hace unos días, debido a que quien moderaba la sección Linux en el Asia-Team ha tenido dificultades personales para seguirlo haciendo, me encuentro a cargo de dicha sección. Como todo proyecto hay tanto de aprendizaje como de enseñanza.

Hace unos días armé un pequeño script en Python para que el amuled (daemon de amule que se ejecuta desde linea de comando y desaparece de toda ventana) mande un email cada vez que completa una descarga, sin necesidad de instalar un servidor de email en la máquina.

Este tipo de cosas es el que me gusta más. Aprendo a traves de la solución de algo específico, con lo que hay un resultado al final del camino. No es que sea un desafío muy importante, llevó más tiempo reunir la información que programar. Pero una vez terminado, mientras hacía un viaje hacia el banco, se me ocurrió pensar que era un perfecto ejemplo de como automatizar una tarea administrativa básica, haciendo que el programa observado nos informara acerca de sus novedades en lugar de tener que revisar logs.

Viendo esto, decidí expandir el programa para que tuviera en cuenta el programa que lo invoca, el motivo por el que lo hace, y los detalles del motivo. Una cuestión bastante trivial, más simplificada aún por el uso de identificadores en texto plano que hacían mucho más obvio que un sistema numérico (que sería más eficiente, aunque en los sistemas actuales ni se nota) como se comparaban los parámetros para cada opción, con el propósito que sirviera para mostrar como ejemplo a gente con pocos o ningún conocimiento de programación.

En particular, Python es espectacular para eso, porque su sintaxis es muy limpia, el uso del tabulado es impecable y obligatorio, y es un lenguaje en el que es muy facil prototipar. Entonces preferí demostrarlo usandolo como un lenguaje de scripting para linea de comando, una de sus tantas posibilidades.

Como creo que esto es suficiente charla para un script tan simple, los enlazo al post en el Asia-Team para que puedan descargarlo y probarlo por ustedes mismos. Por supuesto que si están bajo Windows deberán instalar tanto Python como las extensiones para win32, y tengo razones para pensar que las instrucciones de instalación funcionarán bajo windows salvo el uso de sh como shell para expandir el parametro %NAME que da el Amule y, posiblemente, también el Emule.

No hay comentarios:

Publicar un comentario