参考文档
CLI
update、status、名称与正则选择,以及全局运行配置参数。
nix-pins [OPTIONS] [COMMAND]
nix-pins update [PIN ...] [--filter REGEX]
nix-pins status [PIN ...] [--filter REGEX]
命令
| 命令 | 行为 |
|---|---|
update | 检查版本,计算选中 Pin 的源码与依赖哈希,写入 Pins File |
status | 只读报告选中 Pin 的已有结果与失败信息 |
| 不提供命令 | 等同于 status,选择全部 Pin |
help、--help | 显示帮助 |
--version | 显示 CLI 版本 |
全局选项
| 选项 | 默认值 | 含义 |
|---|---|---|
--config PATH | ./pins-config.nix | Nix Pin 声明文件 |
--pins PATH | ./pins.json | 读取与写入的 Pins File |
--checker-jobs N | CPU 数除以 2,至少 1 | 版本检查并发数 |
--download-jobs N | 2 | 下载并发数 |
--hash-jobs N | CPU 数除以 2,至少 1 | Nix 求值与构建并发数 |
--github-api-base URL | https://api.github.com | GitHub API 地址 |
--crates-api-base URL | https://crates.io | crates.io API 地址 |
--pypi-api-base URL | https://pypi.org | PyPI API 地址 |
--npm-registry-base URL | https://registry.npmjs.org | npm registry 地址 |
--github-token TOKEN | 未设置 | GitHub API 凭证 |
所有全局参数均可放在子命令之前或之后。相对路径按当前工作目录解析。每个配置参数也有对应环境变量,--help 展示变量名与默认值说明;完整优先级见运行配置。
nix-pins --config project/pins-config.nix update --pins project/pins.json
选择条件
PIN 是配置中的名称,可以提供多个;--filter 是作用于 Pin 名的 Rust 正则表达式。二者取并集,均未提供时选择全部 Pin。未知名称、无效正则,以及仅有正则却零匹配的情况都会报错。
nix-pins update editor --filter '^language-'
选择对象是 Pin,不是 Source 或 Package。完整行为见更新与选择。
自动化
使用退出码判断操作是否成功,勿根据 TUI 图标或输出行数推断。运行失败时查看 status 和 Pins File 中的 failure。配置文件可以执行外部命令,应只运行可信配置。
当前没有单独的 add、remove、init 或 status --refresh 命令。添加 Pin 通过编辑声明后执行 update;删除 Pin 后执行一次全部更新。