Or maybe I want Microsoft's Powershell, as I'm guessing I could write hooks into the latter.
I'm analyzing our test suite for a serious refactoring and I'm having issues. Here's a symptom of the problem:
$ ls t/system/tva/versions all-versions.xml no-version.xml illegal_code_and_combination.xml version_with_all_cast_types.xml illegal_guidance_combination.xml version_with_cast_and_credits.xml legal_guidance_combinations.xml version_with_otheridentifier.xml no_guideance_codes.xml version_with_otheridentifiers.xml no-episode.xml versions.xml
Where are those used? Eventually I had to do this (actually, this is the simplified version):
for file in `ls t/system/tva/versions|awk -F'.' '{print $1}'`; do \ ack $file --all t aggtests/; \ done
That didn't find everything, but it was a good start. With either Smalltalk or Powershell, I imagine that I could easily use those as objects and have everything in the test system provide uses and used_by methods.
So I'm trying to figure this out with bash. I'm thinking a miserable SQLite database to start with ...
In the meantime, I'm going to try to reorganize things so that simply doing an ls in a directory will provide maximum possible information. See Schwern's Skimmable Code post.