2 个版本
0.4.2 | 2024年7月2日 |
---|---|
0.4.1 | 2024年6月28日 |
#195 in 配置
每月63次下载
28KB
692 行
link_o_matic
自学Rust
仅仅是又一个dot文件符号链接器:symlinker_o_matic
注意:这是一个Beta版本,仅由我使用,因此请不要在确定我会做什么之前使用删除功能--但是到目前为止,我还没有意外删除文件。
使用约定优于配置原则
期望有一个名为LINKOMATIC_ROOT的环境变量,它指向dotfile检查出的位置。不需要导出,只需在运行link_o_matic时设置它即可
在你的LINKOMATIC_ROOT内部,你将创建一个名为home
的目录,它将是你希望链接的文件/目录,名称中不需要前导.
home/thing
将被链接到~/.thing
home/config/other_thing
将被链接到~/.config/other_thing
期望有一个名为LINKOMATIC_HOSTNAME的环境变量,它是你想表示的主机上的任何字符串。可以与HOSTNAME相同,也可以不同,如果你想在git仓库中隐藏你的主机名。
任何以下划线开头的文件只有在
- 它们以
_${LINKOMATIC_HOSTNAME}
开始时才会被符号链接- 将被链接为
_machine
,其余部分- 例如,
_bob.nvim.lua
仅在主机bob上被链接为_machine.nvim.lua
- 例如,
- 其他机器应该有自己的LINKOMATIC_HOSTNAME
- 将被链接为
- 它们以
_mac
_linux
之一开始,并且你的操作系统是mac或linux- 将被链接为
_platform
- 例如
_mac.fish
会在 macOS 上链接为_platform.fish
- 例如
- 将被链接为
这样,您的配置文件可以引用您的 _machine
和 _platform
文件,而不必知道实际的名称。
命令
install cleanup sync autocleanup implode
install
从 LINKOMATIC_ROOT/home
开始
如果是目录,则递归。如果是文件,则创建指向该文件的符号链接。如果是符号链接,则创建指向其目标的符号链接。其名称将有一个 .
cleanup
查找 ~ 中指向 LINKOMATIC_ROOT/home
中内容的链接。在 ~ 的根目录中查找,或递归地通过任何 ~/dir,该 ~/dir 具有匹配的 LINKOMATIC_ROOT/home/dir 以避免扫描整个家目录。因此,如果您删除顶级目录,您将在这个点上留下孤立的链接,除非您首先从存储库中删除它们并在删除顶级目录之前进行清理。待办事项:是否有更好的方法?
如果是一个损坏的或无效的链接,则提示删除。
sync
首先 install
然后 cleanup
。
autocleanup
与 cleanup
相同,但不会提示。
implode
查找 ~ 中指向 LINKOMATIC_ROOT/home
中内容的链接。提示删除。
别名(符号链接到生成符号链接)
如果您在 LINKOMATIC_ROOT/home
内创建一个指向 LINKOMATIC_ROOT
内文件的有效 相对 路径的符号链接,当创建链接时,它将直接指向符号链接的目标,而不是中间的符号链接。
例如,从您的配置文件开始
cd ~/$LINKOMATIC_ROOT
这一步不是必需的,但将允许目标补全
cd home
现在创建一个指向目标文件的相对链接(如果您跳过了上面的步骤,您将链接到 home/vimrc
)
ln -s ../config/nvim/init.vim vimrc
现在您将在 LINKOMATIC_ROOT/home/vimrc
中有一个符号链接,该链接指向 LINKOMATIC_ROOT/config/nvim/init.vim
,但相对。
当您运行 install 时,您的 ~/.vimrc
将指向您的 LINKOMATIC_ROOT/config/nvim/init.vim
... 而不是指向符号链接 LINKOMATIC_ROOT/home/vimrc
依赖项
~170KB