nurl
从仓库 URL 生成 Nix fetcher 调用
$ nurl https://github.com/nix-community/patsh v0.2.0 2>/dev/null
fetchFromGitHub {
owner = "nix-community";
repo = "patsh";
rev = "v0.2.0";
hash = "sha256-7HXJspebluQeejKYmVA7sy/F3dtU1gc4eAbKiPexMMA=";
}
如果你想生成 Nix 包,可以查看 nix-init,它是基于 nurl 构建的
支持的 Fetcher
- builtins.fetchGit
- fetchCrate
- fetchFromBitbucket
- fetchFromGitHub
- fetchFromGitLab
- fetchFromGitea
- fetchFromGitiles
- fetchFromRepoOrCz
- fetchFromSourcehut
- fetchHex
- fetchPypi
- fetchgit
- fetchhg
- fetchsvn
用法
用法: nurl [选项] [URL] [REV]
参数:
[URL] 要获取的仓库的 URL
[REV] 要获取的修订版本或引用
选项:
-S, --submodules[=<SUBMODULES>] 获取子模块而不是使用 fetcher 的默认值 [可能的值: true, false]
-f, --fetcher <FETCHER> 指定 fetcher 函数而不是从 URL 推断 [可能的值: builtins.fetchGit, fetchCrate,
fetchFromBitbucket, fetchFromGitHub, fetchFromGitLab,
fetchFromGitea, fetchFromGitiles, fetchFromRepoOrCz,
fetchFromSourcehut, fetchHex, fetchPypi, fetchgit, fetchhg,
fetchsvn]
-F, --fallback <FALLBACK> 当 nurl 无法从 URL 推断时回退使用的 fetcher [默认: fetchgit] [可能的值:
builtins.fetchGit, fetchCrate, fetchFromBitbucket,
fetchFromGitHub, fetchFromGitLab, fetchFromGitea,
fetchFromGitiles, fetchFromRepoOrCz, fetchFromSourcehut,
fetchHex, fetchPypi, fetchgit, fetchhg, fetchsvn]
-n, --nixpkgs <NIXPKGS> nixpkgs 的路径(以 nix 格式)[默认: <nixpkgs>]
-i, --indent <INDENT> 额外的缩进(空格数)[默认: 0]
-H, --hash 仅输出哈希值
-j, --json 以 json 格式输出
-p, --parse 解析 URL 而不获取哈希值,以 json 格式输出
-a, --arg <NAME> <EXPR> 传递给 fetcher 的额外参数
-A, --arg-str <NAME> <STRING> 与 --arg 相同,但接受字符串而不是 Nix 表达式
-o, --overwrite <NAME> <EXPR> 覆盖最终输出中的参数,获取哈希值时不考虑
-O, --overwrite-str <NAME> <STRING> 与 --overwrite 相同,但接受字符串而不是 Nix 表达式
-e, --expr <EXPR> 获取固定输出导出的哈希值而不是获取 URL,隐含 --hash 并忽略所有其他选项
-l, --list-fetchers 列出所有可用的 fetcher
-L, --list-possible-fetchers 列出所有无需 --fetcher 就能生成的 fetcher
-s, --list-sep <SEPARATOR> 使用指定的分隔符打印列出的 fetcher,仅在指定 --list-fetchers 或 --list-possible-fetchers 时使用
-h, --help 打印帮助信息
-V, --version 打印版本信息
与 nix-prefetch 的比较
nurl
从 URL 推断 fetcher。对于nix-prefetch
,你需要手动选择 fetcher 并提供参数。nix-prefetch
依赖于 FOD,速度较慢,nurl
尽可能使用替代方案。nix-prefetch
更可配置,支持文件属性。nix-prefetch
的接口类似于nix-build
。nurl
有一些专门用于生成包的不错功能(--indent
,--list-possible-fetchers
)。
更新日志
查看 CHANGELOG.md