I have a main TCL proc that sources tons of other tcl procs in other folders and subsequent subdirectories. For example, in the main proc it has:
source $basepa
The answer by Joseph Bui works well except that it skips files in the initial folder.
Change:
set directories [list]
set directories [list $directory]
to fix