// 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/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") ] ), .target( name: "CliClient", dependencies: [ "CodersClient", .product(name: "Dependencies", package: "swift-dependencies"), .product(name: "DependenciesMacros", package: "swift-dependencies"), .product(name: "ShellClient", package: "swift-shell-client"), .product(name: "TOMLKit", package: "TOMLKit") ] ), .testTarget( name: "CliClientTests", dependencies: [ "CliClient", .product(name: "TOMLKit", package: "TOMLKit") ], resources: [ .copy("Resources/config.json"), .copy("Resources/.hparc"), .copy("Resources/vault.yml"), .copy("Resources/hpa-playbook") ] ), .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") ] ) ] )