close Warning: Can't synchronize with repository "(default)" (/var/svn/tolp does not appear to be a Subversion repository.). Look in the Trac log for more information.

Opened 13 years ago

Closed 13 years ago

#1408 closed enhancement (fixed)

Loading Projects in TOL

Reported by: Pedro Gea Owned by: Jorge
Priority: highest Milestone: TOLBase Revitalization
Component: Kernel Version: head
Severity: critical Keywords: project.ini, _iniproject.tol, ini, project
Cc: pcanadilla@…, javipor@…

Description

El mecanismo de carga de proyectos para TOLBase consta de dos archivos de inicialización, comúnmente denominados:

  • project.ini: un archivo de configuración para la carga de las componentes Tcl-Tk, habitulamente relacionadas con la GUI,
  • _iniproject.tol: un archivo de código TOL para la carga de todo la estructura de archivos de código del projecto.

El aspecto de los archivos project.ini es algo como:

[Project]
title=<Título de la ventana de TOLBase>
[PrjXxxYyy]
name=PrjXxxYyy
path=C:/users/<user>/bsd/entity/PrjXxxYyy/source/gui

mientras que el de los _iniproject.tol es:

...
Text PathProject = "c:/users/<user>/bsd/entity/PrjXxxYyy/";
...
Set If( !ObjectExist("Code", "GetVarIniFile") , 
  Set Include(PathProject<<"source/system/readini.tol"), 
  Copy(Empty)
);
...
Set Include(PathProject<<"source/_inisource.tol");

El código incluido en "readini.tol" se encarga a su vez de la inclusión de un tercer archivo de inicialización de variables globales prj.ini.

El archivo prj.ini contiene la definición de un conjunto de variables globales de una forma semejante a esta:

[DataBase]
XxxYyy_DBA=Oracle
XxxYyy_DBServer=...
XxxYyy_DBName=...
XxxYyy_DBPrefix=...
XxxYyy_DBODBC=...
XxxYyy_DBUser=...
XxxYyy_DBPassword=
[Dir]
-- PathProject se define en _iniproject.tol
PathMod=c:/users/<user>/bsd/entity/PrjXxxYyy/
PathSADD=c:/users/<user>/bsd/sadd/
PathLog=c:/users/<user>/bsd/entity/PrjXxxYyy/log/
...

La carga de estos archivos se consigue ubicándolos en el momento del arranque de tolbase.exe en las carpetas de instalación del programa.

Es por eso que las rutas en ellos han de ser absolutas, ya que pierden la referencia de la carpeta del proyecto donde estaban ubicadas.

Más allá de cuestiones estéticas, la ubicación de estos archivos en las carpetas de instalación está limitada al trabajar en determinadas equipos, de modo que se solicita:

  • Poder cargar estos archivos como argumentos opcionales a la llamada de tolbase.exe

Sería asimismo muy interesante y conveniente poder unificar los tres archivos de inicialización en un sólo que:

  • Contuviera toda la información de inicialización
  • Pudiera llevar las rutas relativas (y así ser el mismo para todos los usuarios y/o ubicaciones del proyecto)
  • Pudiera crearse una asociación de archivos (usando una nueva extensión .tolprj o así) de modo que pueda arrancarse un proyecto con un doble clic sobre dicho archivo.


También sería muy interesante poder trabajar en la posibilidad de abrir los proyectos (también su parte tcl-tk) sobre un TOLBase ya abierto, o incluso si el diseño de los proyectos es el adecuado, abrir más de un proyecto simultáneamente.

Change History (8)

comment:1 Changed 13 years ago by Jorge

Status: newaccepted

comment:2 Changed 13 years ago by Jorge

Propongo que el project.ini y el _iniproject.tol se ubiquen ambos en el directorio del proyecto y que tolbase se invoque así:

tolbase.exe -project C:/users/<user>/bsd/entity/PrjXxxYyy/project.ini

Cuando invoquemos un proceso del proyecto que tenga que ser ejecutado en modo batch con tol.exe o tolsh.exe entonces debemos pasar _iniproject.tol en la línea de comandos ya que ahora no será cargado de forma automática por tol.

comment:3 Changed 13 years ago by Pedro

Hay que tener especial precaución con Telefónica, puesto que tienen ordenadores RETOS en los que no es posible utilizar cmd, hacer referencia a c:\..., ejecutar bats, exes, coms, etc.

Tiene que ser muy simple. Si en lugar de especificarle el fichero ini, se especifica unicamente la carpeta de la aplicación y que tol/tolbase ya busque en esa carpeta el project.ini y el _iniproject.tol sería todavía más sencillo para facilitar el empaquetado de las aplicaciones por parte de Telefónica.

comment:4 Changed 13 years ago by Pedro Gea

Quizá sería interesante disponer de la opción de cargar tolbase sin proyecto alguno aunque existan archivos project.ini o _iniproject.tol en las carpetas de instalación de TOLBase.

Quizá podría valer una opción del tipo: tolbase.exe -project ""

comment:5 Changed 13 years ago by Jorge

(In [4059]) refs #1408

  • se implementa la opción -project path_to_project.ini
  • -project "" implica que no se carga _iniproject.tol ni project.ini
  • -project <path>/project.ini implica que se carga <path>/project.ini y <path>/_iniproject.tol, no se carga _iniproject.tol que suele estar en TOLHOME.
  • se recuerda que existe la opción -np que implica que no se carga _iniproject.tol, esta opcion es compartida con tol.exe y tolsh.exe

refs #1409

  • se require la versión 3.1 de toltcl.

comment:6 Changed 13 years ago by Jorge

Resolution: remind
Status: acceptedclosed

No se ha resuelto todo lo solicitado, pero al menos se puede localizar todos los archivos de configuración relativos al directorio del proyecto y no en un sitio global y común a todos los proyectos como hasta ahora.

comment:7 Changed 13 years ago by Jorge

Resolution: remind
Status: closedreopened

Mover lo que no está resuelto en este ticket a otros tickets.

comment:8 Changed 13 years ago by Jorge

Resolution: fixed
Status: reopenedclosed
Note: See TracTickets for help on using tickets.