[Feature] Recursively search `packs` directory for valid packs
Pre-Request Checklist
- [x] I have checked that I am on the latest version of Terra.
- [x] I have searched github for similar features requests, including closed ones, and found none.
- [x] I believe this is within the scope of Terra.
- [x] This feature request is for all of Terra, and isn't something that should be implemented by a pack or addon.
Feature Description
Allow packs to be placed in arbitrary directory structures within the packs directory, where the requirement for a folder to be loaded as a pack is that it immediately contains a pack.yml.
An example of a valid setup:
packs
some-config-pack-set
pack-1
pack.yml
...
pack-2.zip
pack.yml
...
another-pack-set.zip
some-folder
pack-a
pack.yml
...
pack-b
pack.yml
...
pack-1, pack-2.zip, pack-a, and pack-b would be loaded as config packs.
What Problem Does This Solve?
I feel like pack installation is needlessly complicated because of the strict requirement of where the manifest should be - this would allow installation of packs to be simpler for end users. In many cases you could just download the source of a pack directly from github and drop it in the packs directory without worrying about the directories being nested.
A Solution You'd Like
Run a BFS on folders and zips contained in the packs directory, and attempt to load any directories containing a pack.yml as a config pack. BFS would be terminated at directories identified as packs so pack subdirs aren't searched.
Also this wouldn't be a breaking change as the behavior would remain the same for existing setups. I think this should be slated for 6.2.1