Previously, we required all formulae and casks to be in a specific
formula or cask directory but did not check any subdirectories.
This commit allows using subdirectories for official taps, the only
ones likely to be big enough to warrant sharding in this way and to
avoid potentially breaking backwards compatibility for existing taps.
This was inspired by the most recent issues with homebrew-cask.
- For some of these I changed `context` to `describe` as it fit better
rather than contriving a "when", "with" or "without", or massively
restructuring the tests.
- Depending on context, I've gone for either "denylist" or "disallow"
here. "Disallow" for things in sentences, or actions, and "denylist"
for list of things.
- In Homebrew/linuxbrew-core, [we have a Linux-only formula for
`texlive`](https://github.com/Homebrew/linuxbrew-core/tree/master/Formula/texlive.rb).
- When running `brew audit --strict texlive` on Linux, we got the
following messaging:
```
$ brew audit --strict texlive
texlive:
* 'texlive' is blacklisted from homebrew/core.
Error: 1 problem in 1 formula detected
```
- Looking at where this comes from leads to the missing formula
messaging to install `mactex` via Homebrew Cask. The 'blacklisted in
homebrew/core' messaging only applies to macOS where Casks are an option
for users, so let's not surface the audit for `texlive` on Linux.