2 个版本
0.1.1 | 2023年11月19日 |
---|---|
0.1.0 | 2023年11月19日 |
#277 在 配置
375KB
11K SLoC
Dull
一个无趣的点文件管理器
安装
克隆此仓库,cd
进入它并调用 cargo
来为您构建和安装它
$ cargo install --path .
快速开始
创建一个新文件夹。目标是设置 dull
,以便您可以从这里管理所有点文件。在根目录下创建配置文件 config.toml
。配置文件应包含将 source
路径映射到 target
路径的 module
。在这个例子中,我们将假设我们想要管理三个配置(即,alacritty
、helix
和 fish
)并具有以下文件夹结构
.
├── config.toml
└── modules
├── alacritty
│ └── alacritty.yml
├── fish
│ ├── config.fish
│ ├── fish_variables
│ └── functions
│ └── fish_prompt.fish
└── helix
├── config.toml
└── themes
└── custom.toml
因此,配置文件 config.toml
可能包含以下内容
# config.toml
[[module]]
source = "modules/alacritty"
target = "~/.config/alacritty"
[[module]]
source = "modules/fish"
target = "~/.config/fish"
[[module]]
source = "modules/helix"
target = "~/.config/helix"
首先,我们构建系统
$ dull build
这将在 ./builds
文件夹下创建一个虚拟文件系统。如果存在冲突的模块,构建将失败。
然后,我们部署最新的构建
$ dull deploy
这将在目标目录中创建符号链接(例如,~/.config/alacritty/alacritty.yml
将指向 ./modules/alacritty/alacritty.yml
),允许用户从单个目录管理其配置,使他们能够使用像 git
这样的版本控制系统轻松维护。
请注意,如果模块目标不为空,部署将失败。为了通过删除旧文件/目录来部署,请使用 --force
标志。这不建议这样做,因为这是一种破坏性操作。
或者,您可以执行硬部署,它直接将文件从模块复制到目标路径
$ dull deploy --hard
这在您想从系统中删除 dull
时很有意义。
要删除已部署的文件,调用
$ dull undeploy
这清除最新构建的模块目标。
您可以使用 --build
标志来部署和卸载特定的构建。
指令
默认情况下,dull build
会递归地遍历模块文件夹,并仅将模块目录中包含的文件视为其链接源。您可以通过设置 指令 来选择性地链接文件夹而不是文件。有两种可能的指令:linkthis
和 linkthese
。
您可以通过在模块中的一个文件夹下创建一个 .dull-linkthis
文件来添加一个 linkthis
指令。包含此标记文件的文件夹将被直接链接。同样,通过创建一个 .dull-linkthese
文件,也可以添加一个 linkthis
指令。所有与该标记文件在同一目录下的文件和文件夹都将被直接链接。
这些指令也可以在配置文件中指定,而不是像上面描述的那样创建标记文件。
原子性
部署是 原子 的。换句话说,如果在过程中发生意外情况,dull
会尝试将文件系统回滚到其原始状态。这增加了显著的开销,但最大限度地减少了意外破坏系统的风险。
还有其他问题吗?
本文档尚不完整。要了解有关可能的命令和标志的更多信息,请调用
$ dull help
依赖项
~3–14MB
~119K SLoC