SYNOPSIS
sfind [-subs | -comp] directory [command]DESCRIPTION
Sfind recursively descends the system hierarchy of a software system managed by the shapeTools Release Management System (shapeTools RMS). Sfind starts it's search from directory downwards. According to the shapeTools RMS conventions, directory must contain a Shapefile which lists the subsystems in the variable SUBSYSTEMS and the subsystem components in the variable COMPONENTS. Each subsystem is visited.If no command is specified, sfind echoes the pathnames of the subsystems it finds, or, if the option -comp is given, the pathnames of the components of each subsystem.
When a command is given, it is executed in the directory of each subsystem. The string ``{}'' in command is replaced by the pathname of the subsystem or component.
OPTIONS
- -subs
- command is invoked for each subsystem. This is the default. ``{}'' in command is replaced by the pathname of the subsystem.
- -comp
- command is invoked for each component. ``{}'' in command is replaced by the pathname of the component.
EXAMPLES
List all system components:- sfind -comp ~/development
Show the pathnames of all versionfiles:
- sfind ~/development echo -n {}/ \; shape -echo VERSIONFILE
Echo identification of the last release of each subsystem:
-
sfind ~/development vl -last -format \
\'\$__lastrelease\$\\n\' \
\`shape -echo VERSIONFILE\`
Necessary quoting to echo a pair of curly braces:
- sfind ~/development echo two \\{\\} braces
CAVEATS
Quoting of shell meta characters can be tough.BUGS
The program is slow because shape(1) is called at least once for each subsystem.When sfind is interrupted, usually shape(1) displays the message ``shape - interrupted'', which may be confusing.