7个版本 (稳定版)

使用旧的Rust 2015

1.1.6 2023年12月27日
1.1.3 2018年6月11日
1.1.2 2017年9月14日
1.1.0 2017年7月19日
0.1.0 2017年7月1日

#38配置

每月22次下载

MIT 协议

58KB
1K SLoC

polk

Dotfile管理器。

安装

使用Cargo

cargo install polk

示例

常规使用

# Grab and symlink dotfiles from my GitHub account.
# (assumes repository named 'dotfiles')
polk setup github:dylanmckay

# Grab and symlink dotfiles from another repository.
polk setup github:dylanmckay/otherdotfiles

多个用户/dotfile仓库

# Set up dotfiles for the default user (with what your computer username is).
# Also symlink them to ~/
polk setup github:dylanmckay

# Download dotfiles to a local cache folder but don't create symlinks
polk grab --user bob github:bob67

# Open a shell to a custom home folder with dotfiles symlinked.
polk shell --user bob

# Create symlinks to the currently grabbed dotfiles
# Replace symlinks in ~/ with what bob has
polk link --user bob

# Update the dotfiles (via git)
polk update

# Remove all symlinks created by polk.
polk unlink

实用工具

# Remove all symlinks and cached dotfiles/repositories (~/.polk)
polk forget

# Print a bunch of information
polk info

您的dotfiles仓库

仓库通常看起来是这样的

.
..
.bashrc
.rspec
.tmux.conf
.tmux.linux.conf
.vim
.config/awesome/config.lua
README.md

符号链接是如何工作的

以下是一个表格,展示了仓库中的dotfiles如何映射到$HOME中的符号链接。

文件 符号链接
.bashrc ~/.bashrc-> ~/<dotfiles仓库路径>/.bashrc
.tmux.conf ~/.tmux.conf-> ~/<dotfiles仓库路径>/.tmux.conf
.config/awesome/config.lua ~/.config/awesome/config.lua-> ~/<dotfiles仓库路径>/.config/awesome/config.lua

子目录中的配置文件处理

如上表所示,如果dotfile位于子目录中,则这些目录将在$HOME中创建,然后在子目录中创建指向dotfile的符号链接。

使用此工具无法将dotfiles仓库中的整个目录符号链接到$HOME。如果可以这样做,应用程序可能会将新文件写入仓库,这是不好的。

功能标志

Dotfiles可以在它们的文件名中提及所需的功能。这些dotfiles将根据当前系统有条件地符号链接。

当dotfile被链接时,所有功能标志都将替换为功能名称。例如,linux将变为osx86将变为arch,而unix将变为family。因此,可以在所有架构上以相同的方式源OS或arch特定的dotfiles。

示例

文件 符号链接 注意
.tmux.conf ~/.tmux.conf 没有功能标志,总是会被链接
.tmux.linux.conf ~/.tmux.os.conf 仅在Linux上链接
.tmux.linux.x86.conf ~/.tmux.os.arch.conf 仅在x86 Linux上链接

依赖关系

~15–26MB
~450K SLoC