mise generate tool-stub
- Usage:
mise generate tool-stub [FLAGS] <OUTPUT> - Effect: 修改状态
- Source code:
src/cli/generate/tool_stub.rs
为基于 HTTP 的工具生成工具存根
此命令会生成工具存根,可以自动从 HTTP URL 下载并执行工具。它可以通过下载并分析工具,自动检测校验和、文件大小和二进制文件路径。
当使用特定平台的 URL 生成存根时,该命令会向现有存根文件追加新平台,而不是覆盖它们。这使你可以逐步构建跨平台工具存根。
参数
<OUTPUT>— 工具存根的输出文件路径
标志
-b --bin <BIN>— 提取的归档文件中的二进制路径如果未指定且已下载归档文件,将自动检测最可能的二进制文件
--bootstrap— 将存根包装在引导脚本中,在尚未安装 mise 时安装它启用后,会生成一个 bash 脚本,该脚本:
- 检查 mise 是否安装在预期路径
- 如果未安装,则使用嵌入式安装程序下载并安装 mise
- 使用 mise 执行工具存根
--bootstrap-version <BOOTSTRAP_VERSION>— 为引导脚本指定 mise 版本默认使用安装脚本中的最新版本。 使用此选项可固定到特定版本(例如:“2025.1.0”)。
--checksum-algorithm <CHECKSUM_ALGORITHM>— 下载构件时使用的校验和算法接受
blake3或sha256,默认为blake3。不能与--lock或--skip-download一起使用,因为这些模式不会计算校验和。选项:
blake3、sha256默认值:
blake3--fetch— 获取现有工具存根文件的校验和和大小这会读取现有存根文件,并通过下载文件填充缺失的校验和/大小字段。存根中必须已经存在 URL。
--http <HTTP>— 要使用的 HTTP 后端类型默认值:
http--lock— 将锁文件数据(确切版本 + 平台 URL/校验和)解析并嵌入现有存根文件,以便在不调用运行时 API 的情况下进行可复现安装--platform-bin <PLATFORM_BIN>— 平台特定的二进制路径,格式为 platform:path示例:--platform-bin windows-x64:tool.exe --platform-bin linux-x64:bin/tool
--platform-url <PLATFORM_URL>— 平台特定的 URL,格式为 platform:url 或仅为 url(自动检测平台)当输出文件已存在时,新平台将追加到现有平台表中。如果再次指定,现有平台 URL 将被更新。
如果只提供 URL(不带 platform:),将根据 URL 文件名自动检测平台。
示例:--platform-url linux-x64:https://... --platform-url https://nodejs.org/dist/v22.17.1/node-v22.17.1-darwin-arm64.tar.gz
--skip-download— 跳过用于校验和及二进制路径检测的下载(更快但信息较少)-u --url <URL>— 用于下载工具的 URL示例:https://github.com/owner/repo/releases/download/v2.0.0/tool-linux-x64.tar.gz
--version <VERSION>— 工具的版本默认值:
latest-h --help— 打印帮助
示例:
Generate a tool stub for a single URL:
$ mise generate tool-stub ./bin/gh --url "https://github.com/cli/cli/releases/download/v2.96.0/gh_2.96.0_linux_amd64.tar.gz"
生成带有平台特定 URL 的工具存根:
$ mise generate tool-stub ./bin/rg \
--platform-url linux-x64:https://github.com/BurntSushi/ripgrep/releases/download/14.0.3/ripgrep-14.0.3-x86_64-unknown-linux-musl.tar.gz \
--platform-url darwin-arm64:https://github.com/BurntSushi/ripgrep/releases/download/14.0.3/ripgrep-14.0.3-aarch64-apple-darwin.tar.gz
向现有存根追加其他平台:
$ mise generate tool-stub ./bin/rg \
--platform-url linux-x64:https://example.com/rg-linux.tar.gz
$ mise generate tool-stub ./bin/rg \
--platform-url darwin-arm64:https://example.com/rg-darwin.tar.gz
# 现在该存根包含两个平台
使用 URL 自动检测平台:
$ mise generate tool-stub ./bin/node \
--platform-url https://nodejs.org/dist/v22.17.1/node-v22.17.1-darwin-arm64.tar.gz
# 将从 URL 自动检测平台 'macos-arm64'
生成带平台特定二进制路径的存根:
$ mise generate tool-stub ./bin/tool \
--platform-url linux-x64:https://example.com/tool-linux.tar.gz \
--platform-url windows-x64:https://example.com/tool-windows.zip \
--platform-bin windows-x64:tool.exe
生成时不下载(更快):
$ mise generate tool-stub ./bin/tool --url "https://example.com/tool.tar.gz" --skip-download
为现有存根获取校验和:
$ mise generate tool-stub ./bin/jq --fetch
# 这将读取现有存根并下载文件,以填充任何缺失的校验和/大小
生成一个在需要时安装 mise 的引导存根:
$ mise generate tool-stub ./bin/tool --url "https://example.com/tool.tar.gz" --bootstrap
# 该存根将在运行工具之前检查 mise 并自动安装它
生成一个带固定 mise 版本的引导存根:
$ mise generate tool-stub ./bin/tool --url "https://example.com/tool.tar.gz" --bootstrap --bootstrap-version 2025.1.0
使用固定版本和平台 URL/校验和锁定现有工具存根:
$ mise generate tool-stub ./bin/node --lock
更新已锁定存根中的版本:
$ mise generate tool-stub ./bin/node --lock --version 22
# 解析最新的 node 22.x,将其固定,并更新平台 URL/校验和