Ayer fue un día intenso para mi con unidistro. Primero René nos dio una PACO sobre el asunto. Cuando llegué a casa tenía ganas de probarlo y estuve jugueteando un poco. Básicamente hice lo mismo que había hecho René en la charla. Al final, utilizando un isolinux de un CD de Bardinux, logré generar la iso correspondiente, aunque no la llegué a probar.

Tras estar jugando un rato me surgieron muchas cosas que se podrían hacer para mejorar el sistema pero no me había enfrentado al código. Una de las cosas que se me ocurrió era que los scripts en BASH podrían sobrar; pero claro hacer esto sin tener ni idea del código es complicado, así que se lo comenté al maestro de la comunidad y ahí quedó. Después, en mi ratito de unidistro, me puse a cambiar el módulo que se utiliza para parsear la entrada. Antes usábamos getopt, que no parecía ser suficientemente bueno.

Tras googlear un poco vi un módulo llamado optparser que servía para lo mismo y además forma parte del core de python. Siguiendo la documentación del módulo para python 2.3 no fue difícil hacer un par de ejemplitos sencillos aunque tengo instalado python 2.5.1.

Tras las pruebas pruebas me puse a añadir las opciones reales. Hubo algunas que no incluí porque no funcionan en el framework todavía pero en esencia están todas. René llegó y hablando un poco con él nos dimos cuenta de que simplemente con este cambio y llevando a cabo las distintas opciones en el orden correcto podríamos conseguir el objetivo de hacer innecesarios los scripts en bash (al menos algunas veces).

Con una línea como:

python framework.py -r create -i psmisc -i unidistro -i unidistro-live -i unidistro-base -i unidistro-desktop-base -i kubuntu-kde4 -i kubuntu-kde4-desktop -i kubuntu-kde4-live -i kdebase-dev-kde4 -i kdebase-workspace-dev -i kdebase-runtime -i kdm -i kdm-kde4 -i ksmserver -i unidistro-office -m ../unidistro-data/kubuntu-kde4.xml

Hay que tener en cuenta que los múltiples -i son para instalar cada uno de esos paquetes; pero en realidad lo lógico es sólo haya una. Es decir si tu proyecto se llama bardinux tendrás un metapaquete que dependa de todo lo que haga falta para que se instalen todos los paquetes necesarios.

Anuncios