wiki:tscparser

La edición de los ficheros de configuración de los grupos de TS, aparte de estar sujeto a fallos manuales, es un proceso tedioso si hay que aplicar cambios a varios ficheros. Hasta ahora se creaban shell scripts al efecto para cada tipo de cambio, con el consiguiente sobreesfuerzo. Aparte el editar los ficheros de configuración individualmente sin ningún criterio específico ha llevado a que el formateado de cada uno de ellos sea de una manera.

Para solucionarlo se ha creado TSCParser, un programa en python que permita realizar la mayoría, si no todas, las operaciones sobre los ficheros de configuración. La filosofía de desarrollo del mismo es acumulativa. Se han implementado las necesidades que teníamos en este momento (en lugar de crear un bash script) y posteriormente se irán empleando otras funcionalidades, con lo que esta entrada de la wiki será dinámica también.

Uso general

Para usar tscparser.py, que está ubicado en la carpeta tsconfig/config hay que:

  • Crear el directorio TSC si no estaba creado y meterse en el.
  • Borrar todo el contenido con rm *. Si el directorio actual no está vacío tscparser dará un error para que no se produzcan efectos indeseados de configuraciones que no se hayan generado en ese momento.
  • Ejecutar python ../tscparser.py con las opciones que sean, por ejemplo:

* python ../tscparser.py -m --title VDI3D --key DIALOGO --value "Esta sesión debe ser usada solo para aplicaciones 3D. No tiene instalada la mayoría de las aplicaciones de docencia, solo:<br> - RoboStudio?<br> - SolidWorks? y SolidEdge?<br> - Civil3D y Autocad 2019<br><br>Cancele si quiere usar otras aplicaciones y use UCOESCRITORIO2012, o acepte y entrará en ella." ../thinstation.conf.group-*

Lo anterior modificará (o creará si no existía) la clave DIALOGO de todas las sesiones VDI3D por el texto de value en todos los ficheros que comienzan por thinstation.conf.group-*

* python ../tscparser.py -d --title VDI3D --key DIALOGO ../thinstation.conf.group-*

lo anterior borrará la clave DIALOGO en la sesión VDI3D en los mismos ficheros anteriores.

Tras la ejecución, en el directorio actual aparecerán los ficheros de configuración ya modificados (solo los que se han modificado). Se mueven los que se quieran o todos a la carpeta superior y se aplica el mecanismo normal de ts3config.

El directorio TSC en esta carpeta está excluido del git por lo que no pasará de uno a otro con el git push. Si pasará como es lógico los que movamos a la carpeta superior.

Ante la eventualidad de que nos equivoquemos por ejemplo al borrar o modificar y ya hayamos copiado los ficheros a la carpeta superior no pasa nada. Borramos el contenido de la carpeta TSC de nuevo, repetimos la orden ya sin errores y volvemos a machacar los ficheros de la carpeta padre. Mientras que no hagamos el ts3config nada de lo que hagamos aparecerá en las aulas.

Recuperación tras una edición ya copiada

Si aún no hemos copiado el contenido de la carpeta TSC a la superior, como hemos dicho bastará con borrar el contenido de la carpeta TSC y volver a ejecutar tscparser con las opciones correctas, pero si copiamos ya hemos machacado el contenido de la carpeta config por lo que tendremos que recuperar la última versión de dichos ficheros de nuestro git.

Para ello ejecutaremos git reset --hard. Esto llevará el contenido de nuestro repositorio al último commit que tuviéramos. Para ello es importante que antes de hacer ningún cambio con tscparser nos aseguremos de que los cambios previos de config han sido commiteados.

Formato de invocación de tscparser

usage: tscparser.py [-h] [-m] [-d] [--key KEY] [--value VALUE] [--title TITLE]
                    files [files ...]

TSCParser: Utilidad para gestionar ficheros thinstation.conf.group

positional arguments:
  files          ficheros para procesar

optional arguments:
  -h, --help     show this help message and exit
  -m             modo modificar (default: False)
  -d             modo borrar (default: False)
  --key KEY      clave a modificar (default: None)
  --value VALUE  valor que modificar (default: None)
  --title TITLE  titulo de la sesion a modificar (default: None)

Consideraciones sobre su uso

  • Si algún value es de tipo texto y tiene espacios en blanco, encerrarlo entre dobles comillas. Aparte si hubiera en dicho texto caracteres especiales susceptibles de ser interpretados por la propia shell (como < o > ), para que thinstation no falle dicho valor debería llevar comillas escapadas, por ejemplo un value podría ser así:
--value "\"Este texto daría problemas sin escapar con comillas en ---> thinstation\""
  • La opción -m si no existe la clave previamente la añade.
  • Los mensajes de error que presenta tscparser pueden ignorarse la mayoría pues simplemente pueden corresponder a ficheros que no se procesan por no tener sesiones con determinado title o cosas similares.
Last modified 5 años ago Modificado por última vez en fecha 20/03/2019 10:25:33