weekly icon indicating copy to clipboard operation
weekly copied to clipboard

【开源自荐】用于备份和配置 dotfiles 的命令行工具

Open jaxvanyang opened this issue 10 months ago • 0 comments

大多数人在分享 dotfiles 的时候都会同时维护备份脚本和配置脚本,备份脚本用于把各个应用的配置文件集中到一个仓库里,配置脚本用于恢复仓库里的备份。如果只是复制文件,那么维护这些脚本会很简单,但如果需要提供其他功能比如分应用备份、备份时忽略某些文件,维护就会变得麻烦起来,而且一旦文件路径改变,脚本也需要修改。

为了解决这个问题,我写了 dotbackup 这个工具,它的设计目标是配置简单和易于扩展。最少只需要写上备份文件夹和需要备份的文件的路径就可以进行备份和恢复,还可以通过自定义钩子来执行额外的脚本。下面是该工具的简单示例:

~/.config/dotbackup/dotbackup.yml 里配置备份文件夹和需要备份的应用:

backup_dir: ~/backup
apps:
  vim:
    files: [~/.vimrc]
  nvim:
    files:
      - ~/.config/nvim/init.lua
      - ~/.config/nvim/lua

备份:

$ dotbackup
INFO: doing vim backup...
INFO: copying ~/.vimrc to /home/user/backup/.vimrc...
INFO: doing nvim backup...
INFO: copying ~/.config/nvim/init.lua to /home/user/backup/.config/nvim/init.lua...
INFO: copying ~/.config/nvim/lua to /home/user/backup/.config/nvim/lua...

恢复备份:

$ dotsetup
INFO: doing vim setup...
INFO: copying /home/user/backup/.vimrc to /home/user/.vimrc...
INFO: doing nvim setup...
INFO: copying /home/user/backup/.config/nvim/init.lua to /home/user/.config/nvim/init.lua...
INFO: copying /home/user/backup/.config/nvim/lua to /home/user/.config/nvim/lua...

忽略文件和自定义钩子以及其他命令行选项可以在 dotbackup.1.adoc 查看。

jaxvanyang avatar Apr 08 '24 11:04 jaxvanyang