// swift-tools-version: 6.0 import PackageDescription let package = Package( name: "swift-hpa", platforms: [.macOS(.v14)], products: [ .executable(name: "hpa", targets: ["hpa"]), .library(name: "CliClient", targets: ["CliClient"]), .library(name: "CodersClient", targets: ["CodersClient"]), .library(name: "ConfigurationClient", targets: ["ConfigurationClient"]), .library(name: "FileClient", targets: ["FileClient"]) ], dependencies: [ .package(url: "https://github.com/apple/swift-argument-parser.git", from: "1.3.0"), .package(url: "https://github.com/pointfreeco/swift-dependencies", from: "1.5.2"), .package(url: "https://github.com/m-housh/swift-shell-client.git", from: "0.1.0"), .package(url: "https://git.housh.dev/michael/swift-cli-doc.git", from: "0.2.0"), .package(url: "https://github.com/m-housh/swift-cli-version.git", from: "0.1.0"), .package(url: "https://github.com/LebJe/TOMLKit.git", from: "0.5.0") ], targets: [ .executableTarget( name: "hpa", dependencies: [ "CliClient", "ConfigurationClient", "FileClient", .product(name: "ArgumentParser", package: "swift-argument-parser"), .product(name: "CliDoc", package: "swift-cli-doc"), .product(name: "Dependencies", package: "swift-dependencies"), .product(name: "ShellClient", package: "swift-shell-client") ], plugins: [ .plugin(name: "BuildWithVersionPlugin", package: "swift-cli-version") ] ), .target( name: "CliClient", dependencies: [ "CodersClient", "ConfigurationClient", .product(name: "Dependencies", package: "swift-dependencies"), .product(name: "DependenciesMacros", package: "swift-dependencies"), .product(name: "ShellClient", package: "swift-shell-client") ], resources: [ .copy("Resources/ansible-hpa-playbook"), .copy("Resources/Brewfile") ] ), .testTarget( name: "CliClientTests", dependencies: [ "CliClient", "TestSupport" ] ), .target( name: "CodersClient", dependencies: [ .product(name: "Dependencies", package: "swift-dependencies"), .product(name: "DependenciesMacros", package: "swift-dependencies"), .product(name: "TOMLKit", package: "TOMLKit") ] ), .target( name: "TestSupport", dependencies: [ .product(name: "Dependencies", package: "swift-dependencies"), .product(name: "ShellClient", package: "swift-shell-client") ] ), .target( name: "ConfigurationClient", dependencies: [ "CodersClient", "FileClient", .product(name: "Dependencies", package: "swift-dependencies"), .product(name: "DependenciesMacros", package: "swift-dependencies"), .product(name: "ShellClient", package: "swift-shell-client") ], resources: [ .copy("Resources/hpa.toml") ] ), .testTarget( name: "ConfigurationClientTests", dependencies: [ "ConfigurationClient", "TestSupport" ] ), .target( name: "FileClient", dependencies: [ .product(name: "Dependencies", package: "swift-dependencies"), .product(name: "DependenciesMacros", package: "swift-dependencies") ] ) ] )