Skip to content

[Feature] Recursively search packs directory for valid packs #352

Description

@astrsh

Pre-Request Checklist

  • I have checked that I am on the latest version of Terra.
  • I have searched github for similar features requests, including closed
    ones, and found none.
  • I believe this is within the scope of Terra.
  • 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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Note: Good First IssueGood for anyone looking to learn the internals of TerraStatus: PendingIssue/PR is currently awaiting approval by a moderator.Type: EnhancementA request for a new feature or enhancement to be added.

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions