Mint 🌱

Swift Versions Platforms Git Version License

一个用于安装和运行 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 运行!有关详细信息,请参阅支持

为什么叫做 Mint?

Swift Package Manager Tools -> SPMT -> Spearmint -> Mint! 🌱😄

Mint:生产或制造东西的地方

安装

请先确保已安装 Xcode 10.2。

Homebrew

brew install mint

Make

git clone https://github.com/yonaskolb/Mint.git
cd Mint
make

使用 Mint 本身!

安装
git clone https://github.com/yonaskolb/Mint.git
cd Mint
swift run mint install yonaskolb/mint
更新
mint install yonaskolb/mint

Swift Package Manager

使用 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 的路线图

在达到 1.0 之前,次要版本将是不兼容的。

用法

运行 mint help 查看使用说明。

软件包引用

runinstall 命令需要一个软件包引用参数。这可以是 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

Mintfile 可以指定一个版本化软件包的列表。它使安装和运行这些软件包变得容易,因为特定的存储库和版本是集中的。

只需将此文件放在您运行 Mint 的目录中即可。Mintfile 的格式只是一个软件包列表,格式与通常的软件包参数相同

yonaskolb/xcodegen@2.18.0
yonaskolb/genesis@0.4.0

然后您可以使用以下命令简单地运行一个软件包

mint run xcodegen

请注意,即使您安装了多个版本,mint 也会找到在您的 Mintfile 中声明的版本并运行该版本。

或者使用以下命令一次性安装所有软件包(不全局链接它们)

mint bootstrap

如果您更喜欢全局链接它们,请使用以下命令

mint bootstrap --link

高级

Linux

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

如果在您的存储库中找到此文件,则所有这些目录将被复制到与可执行文件相同的路径中。

一个流行的 Mint 兼容软件包列表 🌱

随意添加您自己的!