2个版本
0.2.1 | 2024年8月15日 |
---|---|
0.2.0 | 2024年8月15日 |
#164 在 文件系统
每月195 次下载
38KB
795 行
Nstow
损坏!
此crate已损坏,未来可能不会更新。
请自行承担风险。
nstow
是一个符号链接农场管理器,旨在包含GNU Stow(或 stow
)的所有功能。
它是 new-stow
的一个克隆版本,具有跨平台兼容性。
[^1] 以下为比较部分。
安装
该包 nstow
提供了一个名为 nstow
的二进制文件。
Cargo
cargo install nstow
发行版软件包
待办事项
用法
- 创建stowfile(请参阅以下Stowfiles部分)
- 链接文件
nstow --stow
- 取消链接文件
nstow --unstow
示例
- Stow传统上用于从编译的execs创建到路径上的符号链接。请参阅
./examples/exec
以获取示例 - 请参阅
./examples/dotfiles
了解如何使用nstow
管理dotfiles的示例
更多信息
nstow--帮助
Stowfiles
nstow
在工作目录中搜索 stowfile
。Stowfiles定义了一组源和链接。
---
vars:
# Variables may be defined for use in a src or link path
- THIS_IS_A_VAR=var_value
# Additionally, environment variables are inherrited
stow:
- src: some_example_file
links:
- ${HOME}/${THIS_IS_A_VAR}/link_it_here # One source file may be linked to many places
- ${HOME}/some/nested/dir/link_it_here_too # Link's parent directories are created if they do not exist
- src: alacritty.yml
links:
# Example of Stowfile using an env var not defined in the `var` section
- "${XDG_CONFIG_HOME}/alacritty/alacritty.yaml"
# Source files may be arbitrarily nested in directories
- bash:
- src: bashrc
links:
- "${HOME}/.bashrc"
- src: bash_profile
links:
- "${HOME}/.bash_profile"
# The source can have any name, even something unrelated to the link's name
- src: readline
links:
- "${HOME}/.inputrc"
上述stowfile将生成以下链接
- ./some_example_file -> ~/var_value/link_it_here
- ./some_example_file -> ~/some/nested/dir/link_it_here_too
- ./alacritty.yml -> ~/.config/alacritty/alacritty.yml
- ./bash/bashrc -> ~/.bashrc
- ./bash/bash_profile -> ~/.bash_profile
- ./readline -> ~/.inputrc
nstow与gstow的比较
nstow
旨在包含(大多数)stow
的功能 [^2]
GNU Stow功能 | 新Stow | 注释 |
---|---|---|
--no | ✔ | |
--dir | ✔ | |
--stow | ✔ | |
--delete | ✔ | |
--restow | ✔ | |
--adopt | 计划中 | |
--no-folding | 计划中 | |
--ignore=REGEX | ✔ | |
--defer=REGEX | ||
--override=REGEX | ✔ | |
--backup=REGEX | ✔ | |
--dotfiles | 计划中 |
请注意,stow的正则表达式可能匹配文件的开头或结尾,而nstow的正则表达式匹配文件的任何部分。
待办事项:我们希望与stow完全功能相同,并且能够在没有stowfile的情况下进行链接? [^2]GNU Stow选项与 2.3.1
相当,这是撰写时的最新版本。
开发中
依赖项
依赖项使用 Nix Flake 管理。虽然我们推荐使用Nix,但您可以直接使用Cargo。在 flake.nix
中的 toolchain
列表将指定任何额外的开发依赖项。
测试
./run-tests
在容器中运行脚本 tests/integration-tests
,这样我们就可以毫无顾忌地创建/删除符号链接。
依赖项
~6–16MB
~193K SLoC