项目可以算是起源于多年前的一篇博客 https://ratazzi.org/2015/03/28/more-automation-after-OS-X-installed/ 在使用 uv mise 等工具后对速度有了便有了更高的要求
我用 Chef 很久了,因为我早已经受不了敲一堆 apt install 所以都是用 Chef 配置,Ruby 作为 DSL 太合适了,简直就像是英语,个人不喜欢 Ansible 和 Salt 那种,我宁愿敲命令也不想写巨复杂的 yaml,但是 Chef 依赖还是太重,最重要的是在 macOS 安装会多一堆乱七八糟的,甚至建一个用户
为什么不用现成的 dotfiles 管理工具,我在大概了解了几个流行的工具之后发现他们的学习成本太高,我觉得 dotfiles 就应该简单的所见即所得,直接链接过去就好
因为 Ghostty 和 Bun 的火爆对 Zig 产生了兴趣,特别是对交叉编译和轻松使用 C 语言生态的能力,当然还有 mise 和 homebrew 这两个优秀的工具,所以在借助 AI 的能力快速验证想法后我觉得很可行,然后就有了这个项目:
https://github.com/ratazzi/hola
理念:
目标:
目前来说这个项目最大的吸引力可能是配置 Dock 等,相比 Chef 多了一些桌面端的能力:
# provision.rb
macos_dock do
apps [
'/Applications/Zed Preview.app/',
'/Applications/Ghostty.app/',
]
orientation :bottom
autohide false
magnification true
tilesize 50
largesize 40
end
hola provision resources.rb
# 迁移当前 Dock
hola dock > resources.rb
# 链接 dotfiles,安装 Homebrew 包,运行 mise install,执行 provision
hola apply
我已经把所有自建节点的 Chef 都换成了 Hola,内存占用从几百 MB 降到个位数,小内存机器没压力了