Dear Welle,
yes, you may modify it at execution time.
There are packages and modules:
https://wiki.tcl-lang.org/page/How+to+change+a+running+system
About the relative path:
Relative means, that it depends on current folder (maintained and set by
pwd command). That might work, but may be not the best choice.
I am not sure about ".app" bundles, I suppose this is a starkit or pack
on Linux or Mac-OS.
You may investigate the ::starkit::topdir variable.
If it is relative to the currently sourced file, you may use:
file join [file dirname [info script]] relative/path]
Take care, "info script" only exists within while sourcing. If you need
the folder later, put it in a variable:
set MyFolder [file dirname [info script]]
There might be some errors up there, but you may get the picture.
Hope this helps,
Harald