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 在 开发工具
67 每月下载次数
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/MIT或LICENSE。
依赖关系
~16–32MB
~513K SLoC