Hoy he tenido un día regular en este reto. Me he pasado parte de la mañana enfrascado en muchos temas y le he dado demasiadas vueltas a la parte de administración. Espero recuperar tiempo mañana.
ttt
Aquí el trabajo ha sido poco. Un test de un módulo Perl escrito y funcional que falla en todos los aspectos que tiene que fallar porque el código que testea no existe en su mayoría. Respecto al módulo he avanzado bastante, especialmente cuando me he dado cuenta de que son tres métodos públicos, sin atributos de clase, y que no merecía la pena emplear bibliotecas de código para automatizar la clase. Vamos, ni ésta ni ninguna de las otras tres en las que está compuesto.
mydevtools
Aquí he estado pensando bastante y me he lanzado a crear una nueva herramienta que las unifique a todas. Así, sin miedo, pero con esperanza brillando en mis ojitos de que esta vez voy a conseguirlo.
No, en serio. El único problema, si puedo llamarlo así, que encuentro con este paquete es que son demasiados los scripts que lo componen y aunque lo tengo bastante documentado me pierdo en el nombre, los parámetros y el orden de uso que tengo que darle en cada momento.
He ideado un programa llamado mybuild que va a reunir toda la funcionalidad que tienen los otros para no tener tanto espacio de nombres ocupado. Si total, las tareas son las mismas de siempre.
Ahora mismo en un archivo make tengo la siguiente disposición con las tareas comunes en un directorio de desarrollo.
all:
build: build-manpages
build-manpages: extract_pod
build_repo_manpages -b -s docs
extract_pod:
extract_pod_manpages -t docs
install: install-docs install-lib
install-docs:
build_repo_manpages -i -s docs -t $(DESTDIR)/usr/share/man
install-lib:
install_repo_files libmyparams-perl $(DESTDIR)
clean: clean-docs clean-tmp
clean-tmp:
find . \( -name "*.bak" -o -name "*.orig" -o -name "*.deb" \) -delete -print
clean-docs:
build_repo_manpages -c -s docs
Más o menos así. Depende de la antigüedad del proyecto utilizaré unos u otros para hacer lo mismo en todas las fases: inicialización, construcción, testeo, instalación y empaquetado. Y siempre tengo que mirar ejemplos de otros proyectos recientes o tirar de página de manual para saber cómo funciona. No está bien.
La herramienta que he comenzado dará un aspecto más sencillo a los archivos make:
all:
build: build-docs build-binary
build-docs:
mybuild build docs
build-binary:
mybuild build bin
clean: clean-repo clean-docs
mybuild clean bin
clean-repo:
mybuild clean repo
clean-docs:
mybuild clean docs
Creo que la idea se pilla. Se llama al programa con la operación y luego el tópico y se encarga, como ya hacen lo otros programas, de mirar valores por defecto, comprobar si se puede o no hacer algo, hacerlo o no, y dar los errores correspondientes; todo con la máxima de que va a ser empleado en otros programas y que debe morirse si hay algo de verdad mal y no decir ni pío si el resto va bien o no ha tenido que hacer nada.
He empezado escribiendo la documentación y luego pasaré a los test. No tengo prisa pero estaría bien que algunos de los tópicos estuviesen cubiertos como la documentación, tema más que trillado por el paquete, lo antes posible.
Ah, lo mismo el nombre es demasiado largo y lo acorto con uno de mis famosos y valorados acrónimos. :-)