1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
(local {: ok :utils {: dirname}} (require :frork))

(ok :git "~/.dotfiles" "https://git.kejadlen.dev/alpha/dotfiles.git")

(let [dotfiles [:.config
                :.digrc
                :.gemrc
                :.git_templates
                :.hammerspoon
                :.inputrc
                :.p10k.zsh
                :.profile
                :.ruby-version
                :.ssh
                :.zsh
                :.zshenv
                :.zshrc
                :.bundle/config
                :.cargo/config.toml]]
  (each [_ v (ipairs dotfiles)]
    (let [src (.. :$HOME/.dotfiles/ v)
          dest (.. :$HOME/ v)]
      ;; TODO fix this - it doesn't work
      (when (v:match "/")
        (-?> dest dirname (partial #(ok :directory))))
      (ok :symlink dest src))))

(ok :symlink "~/.claude" "~/.dotfiles/ai/claude")

(ok :directory "~/.pi")
(ok :symlink "~/.pi/agent" "~/.dotfiles/ai/pi")

;; for per-system configuration
(ok :directory :$HOME/.config/jj/conf.d)