#dotfiles #配置管理 #macos #linux-macos #linux #cli

app dotbak

轻松管理和备份 dotfiles!

18 个版本

0.4.0-alpha.02024 年 7 月 10 日
0.3.5 2024 年 7 月 9 日
0.3.2 2024 年 1 月 6 日
0.3.0-alpha.12023 年 11 月 28 日
0.1.1 2023 年 7 月 13 日

#32配置

Download history 411/week @ 2024-07-05 46/week @ 2024-07-12 96/week @ 2024-07-26 10/week @ 2024-08-02

每月 177 次下载

AGPL-3.0

110KB
2K SLoC

License CircleCI Crates.io Crates.io Downloads (recent)

dotbak

轻松管理和备份 dotfiles!

$ dotbak sync
 Syncing dotfiles...
   [1/4] 📦 Committing changes ... ✅
   [2/4] 📥 Pulling changes ...... ✅
   [3/4] 📤 Pushing changes ...... ✅
   [4/4] 🔄 Synching state ....... ✅
 Done! [1 second]

为什么是 dotbak?

因为其他人都在做自己的事情,我也想做自己想做的事情。毕竟,为什么我要相信别人的糟糕的 CLI 呢?当我可以创建自己的聪明、神奇、绝对不是糟糕的 CLI 时,为什么还要相信别人呢?

安装

使用 cargo install dotbak 安装。这将把 dotbak 二进制文件安装到 $HOME/.cargo/bin/dotbak。请确保此目录已添加到您的 $PATH。如果需要升级,请运行相同的命令。

提示:您可以在命令中添加 --force 以强制重新安装,即使没有新版本。

Dotfile 管理

Dotfiles 被链接并存储在 $HOME/.dotbak/dotfiles。当第一次运行 dotbak init 时,将自动创建此目录。在此目录中,dotbak 管理一个 Git 仓库,所有 dotfiles 都存储在这个仓库中。

要添加或删除dotfiles,请使用dotbak adddotbak remove命令。这些命令会将文件添加或从仓库中移除,并将文件通过符号链接或恢复到$HOME目录。当提供文件路径时,请确保路径相对于$HOME。例如,如果您想添加$HOME/.dotbak/config.toml,则应运行dotbak add .dotbak/config.toml

提示:dotbak不会从$HOME中删除文件,如果这些文件不是由dotbak管理的。

当运行dotbak sync时,dotbak会将所有更改提交到仓库,将更改推送到远程仓库,然后从远程仓库拉取任何更改。除非明确指定,否则所有其他命令都不会从远程仓库推送或拉取更改(当然,除了pushpull)。

提示:在添加或删除文件后运行dotbak sync以从远程仓库推送或拉取更改。如果您不想保留更改,请运行dotbak undo以撤销更改。这只会影响尚未推送到远程仓库的更改

配置

dotbak的配置存储在$XDG_HOME_DIR/.dotbak/config.toml$HOME/.dotbak/config.toml。在第一次运行dotbak init时,会自动创建此文件。

repository_url

远程git仓库的URL。这是在仓库不存在时用于克隆仓库,以及将更改推送到和从仓库拉取的URL。此外,如果本地仓库被删除或损坏,此URL将用于再次克隆仓库。

files

这些告诉dotbak您如何设置管理文件的设置。

files.include

目前,只有files.include,这是一份您想要管理的所有文件和文件夹的列表。例如,如果您想管理您的.dotbak/config.toml文件,则将files.include设置为[".dotbak/config.toml"]。这告诉dotbak管理位于$HOME/.dotbak/config.toml的文件。请注意,路径相对于$HOME

[files]
	include = [".dotbak/config.toml"]

请注意,此 dotbak 配置也可以与普通文件夹一起使用,例如 .config.local。例如,要备份 .config 文件夹,您可以将 files.include 设置为 [".config"],或者运行 dotbak add .config,这将自动将文件夹添加到 files.include 列表。

待办事项

  • 更新用户界面,使其更友好。
    • 调整 "步骤" 后的间距,以确保旋转器/表情符号始终在同一列。
  • 在终端中显示 dotbak 运行的命令的 stdout/stderr。
    • 修复输出中的额外换行符。
  • 重构代码以使其更模块化。
  • 自动修复合并问题/询问用户是否要修复合并问题。
  • 创建一个 undo/rollback 命令来撤销 dotbak 制作的最近更改。
  • 作为守护进程在后台运行 dotbak sync(在登录/每 x 分钟)。
  • 通过 CI(CircleCI)为 Linux 和 macOS 创建二进制发布版本。
  • dotbak 创建 AUR/Homebrew 软件包。

依赖关系

~6–18MB
~195K SLoC