100DaysOfCode: día 3 – aplicaciones web y otros

Día de pequeños arreglos en cosas que he dado por demasiado resueltas y una definición de aplicaciones web para centralizarlas en una página.

El primer problema que me encontré con mi paquete mydevtools es que no podía usarlo para crear un paquete Debian para él empleando sus programas. Lo intenté pero era una pesadilla recursiva, así que opté por el empaquetado tradicional en lugar del simplificado equivs. Como también resulta que los primeros scripts los hacía en Bash era también muy complicado crear tests para ellos. Total, que al final no había tests automatizados y sólo ñapas puntuales en la etapa de desarrollo. Eso conseguía que los errores, especialmente los regresivos, apareciesen en cada versión nueva del paquete. Esta vez no ha sido una excepción y he tenido que volver atrás y arreglarlos para poder avanzar.

La otra opción es reescribir los scripts Bash en Perl y asegurarme así mayor control (algo de control en realidad) y poder efectuar pruebas antes de empaquetar. De momento lo dejo en veremos para el futuro. Ahora toca reparar cositas.

Y respecto al arreglo que menciono me he encontrado hoy con una de las cosas más extrañas que he visto. Una herramienta como grep, fiable como una roca, me ha fallado de manera misteriosa. En el programa que extrae páginas de manual de programas Perl en un directorio tengo una línea como la siguiente:

FILES_LIST=$(grep '^=pod' $DIR/* | cut -d: -f 1 | egrep -v '.orig|.bak')

Selecciona archivos que contengan la directiva, extrae el nombre del archivo del primer campo (retorna el nombre del archivo y la coincidencia separados por dos puntos, y luego filtra. Ha funcionado de maravilla siempre hasta que se ha encontrado con un script Perl como el gra, que contiene lo mismo que en otros que he hecho toda-la-vida-de-dios y resulta que no muestra ni el nombre del archivo ni los dos puntos. Sólo el texto coincidente. Después de darle muchas vueltas lo he cambiado a:

 FILES_LIST=$(grep -l '^=pod' $DIR/* | egrep -v '.orig|.bak')

Y sí, ha funcionado sin problemas. No sé, quizás tendría que haberlo hecho así desde el principio pero ese programa lleva funcionado más de diez años. En fin. Resuelto el problema.

En otro orden de cosas he retomado una idea que tenía hace mucho tiempo y que consiste en agrupar en una página web accesos a las aplicaciones web que están instaladas en la máquina. Hay unas cuantas que utilizo mucho como dwww y phpmyadmin -y otras que tengo planeado hacer yo en un futuro- que están en la máquina local (la mayoría) y a las que me gustaría ser capaz de acceder desde un único punto.

En principio tenía pensado crear algo que explorase los paquetes instalados buscando aplicaciones conocidas y creando enlaces de acceso hacia ellas. Luego he llegado a la conclusión de que imitar lo que hace freedesktop.org con los archivos de acceso y clasificación de aplicaciones y voy a crear algo parecido.