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)