sfind(1) shapeTools RMS recursively descend a system hierarchy

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.