6个版本
0.2.1 | 2023年12月22日 |
---|---|
0.2.0 | 2023年12月21日 |
0.1.3 | 2023年6月23日 |
0.1.2 | 2023年5月29日 |
1501 在 命令行工具
每月 下载 21 次
580KB
275 行
stoic 🖇
Stoic 是一个使用Rust构建的CLI工具。它旨在以集中化的方式简化配置文件(即dotfiles)的管理。使用Stoic,您可以管理您的dotfiles并在不同的环境中保持一致性。
用例示例
假设Bob有一堆dotfiles,他希望安全地存储在云端,以便在不同机器之间移动配置。然后他创建了一个名为 my-configs
的目录,并为每个 程序 创建一个形式为 my-configs/program
的目录,其中可以存储其配置。为了使用 stoic-dotfiles
,他首先通过 crates.io 安装它
cargo install stoic-dotfiles
二进制文件将被别名设置为 stoic
。
为了正确使用 stoic
,Bob 将配置放入一个名为 my-configs
的目录中,该目录具有以下结构
my-configs
├── nvim
│ └── init.lua
├── tmux-bob
│ ├── scripts
│ │ └── sessions.sh
│ └── tmux.conf
└── stoic.toml
文件 stoic.toml
是每个程序配置的位置,可以使用三个变量进行配置
-
target
:一个包含应创建符号链接的路径的字符串。此路径可以是相对路径或绝对路径(程序还会解析以"~/"
开头的路径)。然后Bob将其以下内容放入他的
stoic.toml
[nvim] target = "~/.config/nvim"
然后运行
stoic
中的my-configs/
,程序将创建符号链接/home/bob/.config └── nvim └── init.lua -> /home/bob/my-configs/nvim/init.lua
-
recursive
(可选):程序是否应为其在my-configs/program
中存在的子目录创建符号链接。如果没有设置变量,程序将假定recursive = false
。假设Bob有一个更复杂的Neovim配置布局
nvim ├── lua │ └── bob │ ├── plugins.lua │ └── settings.lua └── init.lua
然后他可以为
nvim
节点启用递归选项[nvim] target = "~/.config/nvim" recursive = true
然后运行
stoic
中的my-configs
,程序应创建以下符号链接/home/bob/.config └── nvim ├── lua │ └── bob │ ├── plugins.lua -> /home/bob/my-configs/nvim/lua/bob/plugins.lua │ └── settings.lua -> /home/bob/my-configs/nvim/lua/bob/settings.lua └── init.lua -> /home/bob/my-configs/nvim/init.lua
-
src
(可选): 包含配置目录路径的字符串,作为符号链接的源目录,如果该变量未设置,程序将假设配置文件中对应[key]
的相对路径为"./key"
。如果鲍勃想将所有与他相关的Tmux配置存储在单个目录中,但又不想所有文件都链接到相同的相对目标目录
他可以在配置文件中添加以下内容来获得这个效果
[tmux] target = "~/.config/tmux" [tmux_scripts] src = "tmux/scripts" target = "~/.local/bin"
生成的符号链接如下
/home/bob/.config └── tmux ├── scripts │ └── sessions.sh -> /home/bob/my-configs/tmux/scripts/sessions.sh └── tmux.conf -> /home/bob/my-configs/tmux/tmux.conf /home/bob/.local └── bin └── sessions.sh -> /home/bob/my-configs/tmux/scripts/sessions.sh
替代方案
依赖关系
约5-14MB
约156K SLoC