diff options
| author | Igor Soarez <igor@soarez.org> | 2026-10-05 13:53:09 +0300 |
|---|---|---|
| committer | Igor Soarez <igor@soarez.org> | 2026-10-05 13:53:09 +0300 |
| commit | 611dfd90d4e523984a78728ebfee033e4c16b37d (patch) | |
| tree | 682e459c78f5a994c276f7021ceda390de49ec6e /link.sh | |
| parent | fac95146b95ef103e8100b2284671be4bdc1065f (diff) | |
pi: extensions as a directory of links, so a machine can have its own
~/.pi/agent/extensions was a link to the repo's directory, so anything that
installs a pi extension wrote into this checkout -- herdr's pi integration did,
on one machine. It is now a real directory with the repo's tracked extensions
linked in one by one, and a file a machine adds there stays that machine's.
pi follows the links, and skips a dangling one silently, so an extension
deleted from the repo leaves a harmless stale link.
The old directory link is removed first: linking into it would write through
to the repo and turn its files into links to themselves. Only tracked files are
linked, so a machine's leftovers in the repo's directory are not linked back.
The filed version put this loop in link.sh; it lives in link/pi.sh, since
link.sh holds one-line links only and a part also obeys ~/.config/dot/skip.
From change request 3f6b05.
Diffstat (limited to 'link.sh')
| -rwxr-xr-x | link.sh | 3 |
1 files changed, 1 insertions, 2 deletions
@@ -35,9 +35,8 @@ link_all "$config_dir/nvim" "$xdg_config_dir/nvim" link_all "$config_dir/bat" "$xdg_config_dir/bat" link "$config_dir/aider.conf.yml" "$HOME/.aider.conf.yml" -link "$config_dir/pi/extensions" "$HOME/.pi/agent/extensions" link "$config_dir/pi/compact-tools.json" "$HOME/.pi/agent/compact-tools.json" -# settings.json and models.json are both generated by link/pi.sh; AGENTS.md and +# extensions/, settings.json and models.json are all link/pi.sh's; AGENTS.md and # mcp.json, if any, come from another layer. # Utils |
