cnb-rs alias import
cnb-rs alias import [<FILE>] [--clobber]从 TOML 文件或 stdin 批量导入 alias。对齐 gh alias import(gh 端用 YAML,cnb-rs 端用 TOML 与 config 保持一致)。
参数
[<FILE>]: 输入文件路径。不指定时从 stdin 读
选项
--clobber: 已存在的同名 alias 覆盖(默认 skip)
输入格式
纯 TOML 键值对,不要带 [aliases] header:
toml
co = "pr checkout"
bug = "issue list --labels=\"$1\""
mine = "issue list --assignees=@me"
igrep = "!cnb-rs issue list --labels=\"$1\" | grep \"$2\""每行一个 alias。expansion 以 ! 开头视为 shell 模式(与 set 行为一致)。
示例
bash
# 从文件导入
$ cnb-rs alias import my-aliases.toml
✓ 导入完成:新增 4,覆盖 0,跳过 0(已存在但未加 --clobber)
# 从 stdin(PowerShell heredoc)
$ @"
co = "pr checkout"
v = "repo view"
"@ | cnb-rs alias import
✓ 导入完成:新增 2,覆盖 0,跳过 0(已存在但未加 --clobber)
# 同名时默认 skip + warn
$ cnb-rs alias import my-aliases.toml
✓ 导入完成:新增 0,覆盖 0,跳过 4(已存在但未加 --clobber)
⚠ 如需覆盖已存在的 alias,重跑加 --clobber
# --clobber 覆盖
$ cnb-rs alias import my-aliases.toml --clobber
✓ 导入完成:新增 0,覆盖 4,跳过 0(已存在但未加 --clobber)错误场景
bash
# 输入为空
$ "" | cnb-rs alias import
错误: 输入为空
# TOML 格式错误(如带了 [aliases] header)
$ "[aliases]`nco = \"pr checkout\"" | cnb-rs alias import
错误: 解析 TOML 失败;期望每行 `name = "expansion"` 格式,不要带 [aliases] header
# 文件不存在
$ cnb-rs alias import /nonexistent.toml
错误: 读取 /nonexistent.toml 失败与 alias set 的对比
| 场景 | 推荐 |
|---|---|
| 创建 1~2 个 alias | alias set,命令行直接传 |
| 一次创建 5+ alias | alias import,TOML 文件维护 |
| 团队共享 alias | alias import,TOML 文件 commit 到 dotfiles |
| CI 初始化 | alias import + stdin,pipe TOML 模板 |