Skip to content

Instantly share code, notes, and snippets.

@hartbit
Created February 27, 2017 21:09
Show Gist options
  • Save hartbit/a0883c2dce74687de645aa801fa41267 to your computer and use it in GitHub Desktop.
Save hartbit/a0883c2dce74687de645aa801fa41267 to your computer and use it in GitHub Desktop.
Swift Package Manager SystemPackageProvider Syntax
let package = Package(
name: "Copenssl",
pkgConfig: "openssl",
providers: [
.brew("openssl"),
.apt("openssl", "libssl-dev")
]
)
struct SystemPackageProvider {
enum PackageManager {
case apt
case brew
}
let packageManager: PackageManager
let packages: [String]
init(_ packageManager: PackageManager, packages: [String]) {
self.packageManager = packageManager
self.packages = packages
}
static func apt(_ packages: String...) -> SystemPackageProvider {
return SystemPackageProvider(.brew, packages: packages)
}
static func brew(_ packages: String...) -> SystemPackageProvider {
return SystemPackageProvider(.brew, packages: packages)
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment