sfind(1)

sfind(1) πŸ’–

ok so bestie, welcome to sfind β€” it's part of ShapeTools, and it's literally the little recursive explorer for your shapeTools RMS tree. let's get into it 🫢


✨ NAME ✨

sfind β€” shapeTools RMS recursively descend a system hierarchy


πŸŽ€ SYNOPSIS πŸŽ€

sfind [-subs | -comp] directory [command]

πŸ¦‹ DESCRIPTION πŸ¦‹

okay so here's the vibe: sfind recursively descends the system hierarchy of a software system managed by the shapeTools Release Management System (shapeTools RMS). it starts its search from directory and goes downwards from there, no cap. 🧚

and per the shapeTools RMS conventions, directory must contain a Shapefile β€” that's the file that lists the subsystems in the variable SUBSYSTEMS and the subsystem components in the variable COMPONENTS. every single subsystem gets visited. periodt. πŸ‘‘

if you don't hand it a command, sfind just echoes the pathnames of the subsystems it finds β€” or, if you gave it the -comp option, it echoes the pathnames of the components of each subsystem instead. lowkey so handy. ✨

when you do give it a command, that command gets executed in the directory of each subsystem. and here's the iconic part: the string `{}` inside command gets replaced by the pathname of the subsystem or component. πŸ’…


πŸ’… OPTIONS πŸ’…

  • -subs β€” command is invoked for each subsystem. this is the default, so if you say nothing, this is what you get, no questions asked. `{}` 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

πŸ”₯ SEE ALSO πŸ”₯

find(1), sh(1), shape(1), shape_RMS(1), shape_tmpl(7)


πŸ’€ CAVEATS πŸ’€

quoting of shell meta characters can be tough. like, genuinely tough. be careful out there bestie. 😭


πŸ™ˆ BUGS πŸ™ˆ

  • the program is slow because shape(1) is called at least once for each subsystem. it's giving "worth it but also…" ngl.
  • when sfind is interrupted, usually shape(1) displays the message `shape - interrupted`, which may be confusing. don't panic, that's just what it does. 🫢

πŸ‘‘ AUTHOR πŸ‘‘

Andreas.Lampen@cs.tu-berlin.de


and that's the whole page, bestie!! this was shape_RMS-1.15, dated Fri Jun 25 17:01:50 1993 β€” iconic behavior from the ShapeTools era, we love to see it πŸ’–βœ¨πŸŽ€ go descend that hierarchy, you main character πŸ¦‹πŸ’