feat: Breaking out more dependencies.

This commit is contained in:
2024-12-10 17:08:17 -05:00
parent 87390c4b63
commit 92cd6afa2b
20 changed files with 1408 additions and 691 deletions

View File

@@ -1,5 +1,6 @@
import ArgumentParser
import CliClient
import ConfigurationClient
import Dependencies
import Foundation
import Logging
@@ -15,11 +16,12 @@ func runPlaybook(
) async throws {
try await withSetupLogger(commandName: commandName, globals: globals) {
@Dependency(\.cliClient) var cliClient
@Dependency(\.configuration) var configurationClient
@Dependency(\.logger) var logger
logger.debug("Begin run playbook: \(globals)")
let configuration = try cliClient.ensuredConfiguration(configuration)
let configuration = try await configurationClient.findAndLoad()
logger.debug("Configuration: \(configuration)")
@@ -27,7 +29,7 @@ func runPlaybook(
globals: globals,
configuration: configuration,
globalsKeyPath: \.playbookDir,
configurationKeyPath: \.playbookDir
configurationKeyPath: \.playbook?.directory
)
let playbook = "\(playbookDir)/\(Constants.playbookFileName)"
@@ -35,11 +37,11 @@ func runPlaybook(
globals: globals,
configuration: configuration,
globalsKeyPath: \.inventoryPath,
configurationKeyPath: \.inventoryPath
configurationKeyPath: \.playbook?.inventory
)) ?? "\(playbookDir)/\(Constants.inventoryFileName)"
let defaultArgs = (configuration.defaultPlaybookArgs ?? [])
+ (configuration.defaultVaultArgs ?? [])
let defaultArgs = (configuration.args ?? [])
+ (configuration.useVaultArgs ? configuration.vault.args ?? [] : [])
try await cliClient.runCommand(
quiet: globals.quietOnlyPlaybook ? true : globals.quiet,
@@ -70,15 +72,6 @@ func runPlaybook(
)
}
extension CliClient {
func ensuredConfiguration(_ configuration: Configuration?) throws -> Configuration {
guard let configuration else {
return try loadConfiguration()
}
return configuration
}
}
extension BasicGlobalOptions {
var shellOrDefault: ShellCommand.Shell {

View File

@@ -1,3 +1,4 @@
import ConfigurationClient
import Dependencies
import ShellClient
@@ -8,11 +9,12 @@ func runVault(
) async throws {
try await withSetupLogger(commandName: commandName, globals: options.globals) {
@Dependency(\.cliClient) var cliClient
@Dependency(\.configuration) var configurationClient
@Dependency(\.logger) var logger
logger.debug("Begin run vault: \(options)")
let configuration = try cliClient.ensuredConfiguration(nil)
let configuration = try await configurationClient.findAndLoad()
logger.debug("Configuration: \(configuration)")
let path: String
@@ -24,7 +26,7 @@ func runVault(
logger.debug("Vault path: \(path)")
let defaultArgs = configuration.defaultVaultArgs ?? []
let defaultArgs = configuration.vault.args ?? []
var vaultArgs = ["ansible-vault"]
+ args
@@ -34,7 +36,7 @@ func runVault(
if args.contains("encrypt"),
!vaultArgs.contains("--encrypt-vault-id"),
let id = configuration.defaultVaultEncryptId
let id = configuration.vault.encryptId
{
vaultArgs.append(contentsOf: ["--encrypt-vault-id", id])
}