一个用于安装和运行 Swift 命令行工具包的包管理器。
mint run realm/SwiftLint@0.40.3
这将安装并运行 SwiftLint 0.40.3 版本
Mint 旨在与使用 Swift Package Manager 构建的 Swift 命令行工具一起使用。它使安装、运行和分发这些工具变得更加容易。
Homebrew 是一种流行的分发 Swift 可执行文件的方法,但这需要创建公式并维护该公式。运行特定版本的 Homebrew 安装也可能很棘手,因为一次只能安装一个全局版本。Mint 通过 SPM 安装您的软件包,并允许您运行该软件包的多个版本,这些版本安装并缓存在一个中心位置。
如果您的 Swift 可执行软件包使用 SPM 构建,那么它可以使用 Mint 运行!有关详细信息,请参阅支持。
Swift Package Manager Tools -> SPMT -> Spearmint -> Mint! 🌱😄
Mint:生产或制造东西的地方
请先确保已安装 Xcode 10.2。
brew install mint
git clone https://github.com/yonaskolb/Mint.git
cd Mint
make
git clone https://github.com/yonaskolb/Mint.git
cd Mint
swift run mint install yonaskolb/mint
mint install yonaskolb/mint
使用 CLI
git clone https://github.com/yonaskolb/Mint.git
cd Mint
swift run mint
用作依赖项
将以下内容添加到您的 Package.swift 文件的依赖项中
.package(url: "https://github.com/yonaskolb/Mint.git", from: "0.15.0"),
然后根据需要导入:import MintKit
在达到 1.0 之前,次要版本将是不兼容的。
运行 mint help
查看使用说明。
run
运行,并且还会全局链接该版本软件包引用
run
和 install
命令需要一个软件包引用参数。这可以是 github 存储库的简写(mint install realm/SwiftLint
)或完全限定的 git 路径(mint install https://github.com/realm/SwiftLint.git
)。在 run
的情况下,如果已经安装了,您也可以只传递存储库的名称(run swiftlint
)或在 Mintfile 中。可以通过附加 @version
来指定一个可选版本,否则将使用最新的标签或 master。请注意,如果您不指定版本,则每次都必须远程加载当前标签。
$ mint run yonaskolb/XcodeGen@2.18.0 # run the only executable
$ mint run yonaskolb/XcodeGen@2.18.0 --spec spec.yml # pass some arguments
$ mint run yonaskolb/XcodeGen@2.18.0 xcodegen --spec spec.yml # specify a specific executable
$ mint run --executable xcodegen yonaskolb/XcodeGen@2.18.0 --spec spec.yml # specify a specific executable in case the first argument is the same name as the executable
$ mint install yonaskolb/XcodeGen@2.18.0 --no-link # installs a certain version but doesn't link it globally
$ mint install yonaskolb/XcodeGen # install newest tag
$ mint install yonaskolb/XcodeGen@master --force #reinstall the master branch
$ mint run yonaskolb/XcodeGen@2.18.0 # run 2.18.0
$ mint run XcodeGen # use newest tag and find XcodeGen in installed packages
默认情况下,Mint 会在 mint install
时将您的安装符号链接到 ~/.mint/bin
,除非传递了 --no-link
。这意味着可以从任何地方访问一个软件包,您不必在命令前加上 mint run package
,只要您将 ~/.mint/bin
添加到您的 $PATH
。请注意,一次只能使用一个链接的版本。如果您需要运行特定的旧版本,请使用 mint run
。
Mintfile
可以指定一个版本化软件包的列表。它使安装和运行这些软件包变得容易,因为特定的存储库和版本是集中的。
只需将此文件放在您运行 Mint 的目录中即可。Mintfile
的格式只是一个软件包列表,格式与通常的软件包参数相同
yonaskolb/xcodegen@2.18.0
yonaskolb/genesis@0.4.0
然后您可以使用以下命令简单地运行一个软件包
mint run xcodegen
请注意,即使您安装了多个版本,mint 也会找到在您的 Mintfile 中声明的版本并运行该版本。
或者使用以下命令一次性安装所有软件包(不全局链接它们)
mint bootstrap
如果您更喜欢全局链接它们,请使用以下命令
mint bootstrap --link
mint run
中使用 --silent
来静默来自 mint 本身的任何输出。如果将输出转发到其他地方,这将非常有用。MINT_PATH
和 MINT_LINK_PATH
环境变量来配置 mint 缓存构建的位置,以及它符号链接全局安装的位置。这些默认分别为 ~/.mint
和 ~/.mint/bin
mint install --force
重新安装一个软件包,即使它已经安装了。除非您指向一个分支并想要更新它,否则不需要这样做。Mint 在 Linux 上运行,但有一些限制
如果您的 Swift 命令行工具使用 Swift Package Manager 构建,那么它将自动使用 mint 安装和运行!
请确保您在 Package.swift
中的 products
列表中定义了一个 executable
产品类型。
let package = Package(
name: "Foo",
products: [
.executable(name: "foo", targets: ["Foo"]),
],
targets: [
.target(name: "Foo"),
...
]
)
然后您可以将其添加到您的自述文件中的 Installing
部分
### [Mint](https://github.com/yonaskolb/mint)
```
mint run github_name/repo_name
```
由于 Swift 5.3 资源现在已构建到 Swift Package Manager 中,因此如果您以该版本或更高版本为目标,则不再需要
Package.resources
文件 https://github.com/apple/swift-evolution/blob/master/proposals/0271-package-manager-resources.md
Swift Package Manager 尚未提供指定资源目录的方法。如果您的工具需要访问存储库中的资源,则您需要一个自定义的 Package.resources
文件。这是一个纯文本文件,其中列出了不同行上的资源目录
MyFiles
MyOtherFiles
如果在您的存储库中找到此文件,则所有这些目录将被复制到与可执行文件相同的路径中。
随意添加您自己的!