V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
ratazzi
V2EX  ›  分享创造

纯技术的来了 Hola: Brewfile + mise.toml + dotfiles = 你的开发环境

  •  
  •   ratazzi ·
    ratazzi · 9 天前 · 1222 次点击

    项目可以算是起源于多年前的一篇博客 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 就应该简单的所见即所得,直接链接过去就好

    因为 GhosttyBun 的火爆对 Zig 产生了兴趣,特别是对交叉编译和轻松使用 C 语言生态的能力,当然还有 mise 和 homebrew 这两个优秀的工具,所以在借助 AI 的能力快速验证想法后我觉得很可行,然后就有了这个项目:

    https://github.com/ratazzi/hola

    理念:

    • 约定胜于配置,dotfiles 就是简单的软链接

    目标:

    • 链接 dotfiles
    • 安装软件包
    • 管理配置文件

    目前来说这个项目最大的吸引力可能是配置 Dock 等,相比 Chef 多了一些桌面端的能力:

    # resources.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 降到个位数,小内存机器没压力了

    wukaige
        1
    wukaige  
       9 天前
    wukaige in  max in ~
    ➜ which c 󱐡 09:26
    c: aliased to git --work-tree=/home/wukaige --git-dir=/home/wukaige/.dotfiles.git

    用 git 的 bare 仓库管理配置文件也挺方便的啊,完全不用上管理工具

    想管理哪个配置,直接 c add /path/to/config
    ratazzi
        2
    ratazzi  
    OP
       9 天前
    @wukaige 对,如果单机只管理 dotfiles 的话这样也挺好

    开发这个工具是 更侧重于根据 dotfiles 直接配置开发环境
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   2520 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 20ms · UTC 14:58 · PVG 22:58 · LAX 06:58 · JFK 09:58
    ♥ Do have faith in what you're doing.