10个版本

0.3.0 2024年5月21日
0.2.8 2024年5月2日
0.2.7 2022年9月6日
0.2.6 2022年8月25日
0.1.0 2021年8月23日

#285开发工具

Download history 183/week @ 2024-04-29 45/week @ 2024-05-06 6/week @ 2024-05-13 173/week @ 2024-05-20 3/week @ 2024-05-27 13/week @ 2024-06-03 18/week @ 2024-06-10 9/week @ 2024-06-17 7/week @ 2024-06-24 46/week @ 2024-07-01 7/week @ 2024-07-08 59/week @ 2024-07-29 8/week @ 2024-08-12

67 每月下载次数

MIT 许可证

79KB
2K SLoC

Aftman

Aftman是一个工具链管理器。它允许无缝安装项目特定的命令行工具并在它们之间切换。

$ rojo --version
Rojo 6.2.0

$ cat ~/.aftman/aftman.toml
[tools]
rojo = "rojo-rbx/[email protected]"

$ cd uses-rojo-7
$ rojo --version
Rojo 7.1.0

$ cat aftman.toml
[tools]
rojo = "rojo-rbx/[email protected]" 

支持的平台

Aftman支持

  • Windows (x86, x86-64)
  • macOS (x86-64, AArch64)
  • Linux (x86, x86-64)

安装

您可以从Aftman的GitHub发行版页面下载适用于您平台的预构建二进制文件来安装Aftman。

一旦解压了发行版,运行

./aftman self-install

这将安装Aftman到其自己的bin目录,并为您更新系统环境变量PATH

入门

要创建当前目录中的新aftman.toml文件,请运行

aftman init

要添加新工具,您可以按照文件中的说明操作,或运行

aftman add rojo-rbx/rojo

# install a specific version
aftman add rojo-rbx/[email protected]

# install with a different binary name
aftman add BurntSushi/ripgrep rg

如果您的PATH配置正确(见安装),您现在可以从项目运行该工具。

要全局安装工具以便在任何地方使用,编辑~/.aftman/aftman.toml或运行

aftman add --global rojo-rbx/rojo

要安装由您的aftman.toml文件列出的所有工具,请运行

aftman install

使用GitHub进行身份验证(Aftman 0.2.7+)

如果您遇到GitHub速率限制或想管理托管在GitHub上的私有工具,您可以给Aftman一个个人访问令牌

生成个人访问令牌,然后编辑~/.aftman/auth.toml以添加它

github = "pat goes here"

Aftman将使用此令牌对GitHub的所有请求进行身份验证。

子命令

要获取详细帮助信息,请运行aftman --help

aftman init

用法

aftman init [path]

在指定的目录中创建新的aftman.toml文件。默认为当前目录。

aftman add

用法

aftman add [--global] <tool-spec> [tool-alias]

使用给定的工具规范安装新工具,并可选地指定用于安装工具的别名。

示例

# Install the latest version of Rojo in the nearest aftman.toml file
aftman add rojo-rbx/rojo

# Install the latest version of Rojo globally
aftman add --global rojo-rbx/rojo

# Install a specific version of Rojo locally
aftman add rojo-rbx/[email protected]

# Install Rojo with a different binary name
aftman add rojo-rbx/[email protected] rojo6

aftman install

用法

aftman install [--no-trust-check] [--skip-untrusted]

根据当前目录安装aftman.toml文件中列出的所有工具。

如果指定了--no-trust-check,则无论工具是否已知,都会进行安装。这通常仅在CI环境中使用。要在运行aftman install之前信任特定工具,请使用aftman trust <tool>

如果指定了--skip-untrusted,则仅安装已信任的工具,其他工具将被跳过,不会发出错误。

aftmanself-install

用法

aftman self-install

安装Aftman,升级对Aftman的任何引用,并在支持的情况下将aftman添加到系统PATH

每次升级Aftman时,请运行此命令。Aftman会创建自己的副本来模拟其安装的工具,此命令将确保这些副本也得到更新。

aftman trust

用法

aftman trust <tool-name>

将工具添加到信任工具列表。

Aftman在安装新工具之前会提示用户。运行aftman trust将跳过此提示。这在运行依赖于已知位置的特定工具的自动化时很有用。

aftman list

自Aftman 0.2.6起添加。

用法

aftman list

列出Aftman当前管理的所有工具。

aftman update

此子命令尚未实现。

与Foreman的差异

Aftman在精神上与我在Roblox创建的Foreman项目非常相似。

我希望修复Foreman中的一些核心设计错误,并对代码库更加小心。大致上

  • 精确版本依赖关系。使用范围可能会让很多用户陷入困境,因此Aftman在所有配置文件中使用精确版本。
  • 安装、卸载和升级工具的命令。手动编辑全局的、隐藏的toml文件很麻烦。
  • 不再默认信任。Aftman在下载新工具之前会提示用户。(Roblox/foreman#16
  • 存储可执行文件更好的策略。Roblox/foreman#11
  • 选择正确工件的平台更好策略。Aftman使用您的编译器、操作系统、架构,并将最终支持自定义模式。(Roblox/foreman#18
  • 适当的错误处理。与Foreman不同,它自由使用Result::unwrap,Aftman具有良好的错误处理,并附加了有用的上下文。
  • 减少Roblox导向。Aftman不将其自己定位为Roblox开发的工具。它是一个通用的工具,可以安装各种CLI工具。

许可证

Aftman在MIT许可证的条款下提供。有关详细信息,请参阅https://opensource.org/licenses/MITLICENSE

依赖关系

~16–32MB
~513K SLoC