13 个不稳定版本 (3 个破坏性版本)
0.4.1 | 2023年12月27日 |
---|---|
0.4.0 | 2023年12月16日 |
0.3.4 | 2023年12月8日 |
0.3.3 | 2023年11月27日 |
0.1.0 | 2023年7月17日 |
#290 in 配置
每月 94 次下载
57KB
1.5K SLoC
rrcm
一个跨平台兼容的工具,用于部署多个 dotfiles 仓库。
简介
- 使用符号链接部署配置文件和目录。
- 配置文件和目录在 Git 仓库中管理。
- 从同一目录提供多个操作系统上的部署。
通过利用 Linux 和 macOS 上的
目录
配置文件指定了每个平台部署源和目标之间的映射。rrcm 在部署目标目录下创建指向部署目标下文件和目录的符号链接。
(dotfiles repository download directory)
dotiles
│ (local repositroy)
├── example1
│ │ (deploy target)
│ ├── home
│ │ │ (symbolic link)
│ │ ├── .profile <- $HOME/.profile (on Linux and Mac)
│ │ │ %PROFILE%\.profile (on Win)
│ │ ├── .vim <- $HOME/.vim (on Linux and Mac)
│ │ │ %PROFILE%\.vim (on Win)
│ │ └── ...
│ │
│ └── .config
│ ├── nvim <- $HOME/.config/nvim (on Linux and Mac),
│ │ %PROFILE%\AppData\LocalAppData\nvim (on Win)
│ └── ...
│
└── example2 (next local repositroy)
└── ...
在部署目标目录下,文件和目录通过符号链接进行部署。 Windows 需要以管理员身份运行。
配置
配置文件路径
- Unix: $HOME/.config/rrcm/config.yaml
- Win: %PROFILE%\AppData\Roaming\rrcm\config.yaml
---
# dotfiles repositroy download directory
dotfiles:
windows: "%USERPROFILE%\\dotfiles"
mac: "${HOME}/.dotfiles"
linux: "${HOME}/.dotfiles"
# repositories. multiple repositories can be specified.
repos:
# local repository name
- name: example1
# git repository url
url: 'git@github:example/example1'
# deploy configuration
deploy:
# deploy target
# Example: deploy home directory to $HOME or %USERPROFILE%
home:
# deploy destination on each OS.
# if OS not defined, it will not be deployed.
windows: "%USERPROFILE%"
mac: "${HOME}"
linux: "${HOME}"
# Example: deploy .config directory to XDG_CONFIG_HOME or %USERPROFILE%\AppData\Roaming
.config:
windows: "%FOLDERID_RoamingAppData%"
mac: "${XDG_CONFIG_HOME}"
linux: "${XDG_CONFIG_HOME}"
# Example: deploy .config-LocalAppData to XDG_CONFIG_HOME or %USERPROFILE%\AppData\Local
.config-LocalAppData:
windows: "%FOLDERID_LocalAppData%"
mac: "${XDG_CONFIG_HOME}"
linux: "${XDG_CONFIG_HOME}"
# next repository
- name: example2
url: 'git@github:example/example2'
...
部署目标
可以在部署目标中使用环境变量。
格式
- Unix: ${ENVIRONMENT_VARIABLE_NAME}
- Windows: %ENVIRONMENT_VARIABLE_NAME%
以下特殊变量可用。
- Unix XDG 基目录如果环境变量未设置,则使用默认值。
- ${XDG_CONFIG_HOME}
- ${XDG_DATA_HOME}
- Windows 已知文件夹 ID
- %FOLDERID_RoamingAppData%
- %FOLDERID_LocalAppData%
- %FOLDERID_Documents%
- %FOLDERID_Desktop%
安装
Cargo
cargo install rrcm
用法
初始化配置文件
rrcm init
# or initialize config file from http
rrcm init <url>
我建议使用类似这样的 gist。 我的 config.yaml
更新(git 克隆或拉取)仓库并部署
rrcm update
显示部署状态
rrcm status
依赖项
~8–42MB
~647K SLoC