Add support for layered and plugin configurations (#1543)

- This adds support for reading configurations from
  a three layer hierarchy:
  1. User provided TOML
  2. Install root TOML
  3. Code defaults
- We add some code to support plugin configurations
  via the ConfigurationLoader. Each plugin can provide
  a struct with an accompanying id that gets used to
  parse the scoped section of the TOML.
This commit is contained in:
Noah Thornton
2026-05-12 14:35:21 -07:00
committed by GitHub
parent 940fefb7cd
commit a967399d48
28 changed files with 1165 additions and 712 deletions
@@ -56,7 +56,7 @@ extension Application {
var arguments: [String] = []
public func run() async throws {
let containerSystemConfig: ContainerSystemConfig = try ConfigurationLoader.load()
let containerSystemConfig: ContainerSystemConfig = try await ConfigurationLoader.load()
let progressConfig = try ProgressConfig(
showTasks: true,
showItems: true,
@@ -63,7 +63,7 @@ extension Application {
var arguments: [String] = []
public func run() async throws {
let containerSystemConfig: ContainerSystemConfig = try ConfigurationLoader.load()
let containerSystemConfig: ContainerSystemConfig = try await ConfigurationLoader.load()
var exitCode: Int32 = 127
let id = Utility.createContainerID(name: self.managementFlags.name)