Setting the CLI EXECUTABLE_PATH Variable
This macro recursively descends through all directories, starting at a location indicated by the root argument. The macro ignores directories named in the filter argument. The result is set as the value of the CLI EXECUTABLE_PATH state variable.
# Usage:
#
# rpath [root] [filter]
#
# If root is not specified, start at the current
# directory. filter is a regular expression that removes
# unwanted entries. If it is not specified, the macro
# automatically filters out CVS/RCS/SCCS directories.
#
# The search path is set to the result.
proc rpath {{root "."} {filter "/(CVS|RCS|SCCS)(/|$)"}} {
# Invoke the UNIX find command to recursively obtain
# a list of all directory names below "root".
set find [split [exec find $root-type d-print] \n]
set npath ""
# Filter out unwanted directories.
foreach path $find {
if {! [regexp $filter $path]} {
append npath ":"
append npath $path
}
}
# Tell TotalView to use it.
dset EXECUTABLE_PATH $npath
}
The last statement sets the EXECUTABLE_PATH state variable. This is the only statement that is unique to the CLI. All other statements are standard Tcl.
The dset command, like most interactive CLI commands, begins with the letter d. (The dset command is only used in assigning values to CLI state variables. In contrast, values are assigned to Tcl variables using the standard Tcl set command.)