@sebastienrousseau/dotfiles 0.2.502 → 0.2.504

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (412) hide show
  1. package/CHANGELOG.md +109 -9
  2. package/LICENSE +21 -1283
  3. package/README.md +6 -4
  4. package/docs/CONFIG_STRATEGY.md +124 -0
  5. package/docs/COPYRIGHT +1 -1
  6. package/docs/GOVERNANCE.md +98 -0
  7. package/docs/MAINTAINERS.md +41 -0
  8. package/docs/OPENCODE.md +127 -0
  9. package/docs/README.md +2 -0
  10. package/docs/STRUCTURE.md +102 -0
  11. package/docs/adr/ADR-011-nushell-tier3-keep.md +2 -2
  12. package/docs/architecture/AI_COST_OPTIMIZATION.md +143 -0
  13. package/docs/architecture/REPO_LAYOUT.md +8 -8
  14. package/docs/archive/MILESTONE_v0.2.493.md +1 -1
  15. package/docs/index.md +2 -2
  16. package/docs/interop/POWERSHELL.md +1 -1
  17. package/docs/manual/00-introduction.md +1 -1
  18. package/docs/manual/01-concepts/02-trust-model.md +1 -1
  19. package/docs/manual/03-reference/02-config-files.md +2 -2
  20. package/docs/manual/_toc.yml +1 -1
  21. package/docs/manual/command-index.md +72 -59
  22. package/docs/operations/CI_COMPOSITES.md +2 -2
  23. package/docs/operations/COMPLETIONS.md +2 -2
  24. package/docs/operations/COVERAGE.md +5 -5
  25. package/docs/operations/HARD_AUDIT_2026.md +11 -11
  26. package/docs/operations/MAINTENANCE.md +3 -3
  27. package/docs/operations/MANIFEST.md +127 -0
  28. package/docs/operations/RELEASE_PIPELINE.md +130 -0
  29. package/docs/operations/RFC_v0_2_503_reorganization.md +280 -0
  30. package/docs/operations/ROADMAP_2026.md +6 -6
  31. package/docs/operations/ROADMAP_V0_2_503.md +134 -0
  32. package/docs/operations/TESTING.md +17 -0
  33. package/docs/operations/TRACEABILITY.md +6 -3
  34. package/docs/operations/VERSION_SYNC.md +4 -4
  35. package/docs/reference/POWERSHELL_PARITY.md +8 -7
  36. package/docs/schema/dot-env-v1.json +110 -0
  37. package/docs/security/CI_EGRESS_ALLOWLIST.md +1 -1
  38. package/docs/security/CI_PINNING.md +17 -9
  39. package/docs/security/DEPS_DEV_EXCEPTIONS.md +2 -2
  40. package/docs/security/FUZZING.md +114 -0
  41. package/docs/security/INSTALL_VERIFICATION.md +2 -2
  42. package/docs/security/POLICY_RELEASES.md +2 -2
  43. package/docs/security/SCORECARD.md +58 -3
  44. package/docs/security/SHELL_EXEMPTIONS.md +4 -4
  45. package/docs/security/VERIFY_RELEASE.md +201 -0
  46. package/install.sh +118 -5
  47. package/package.json +1 -1
  48. package/scripts/README.md +123 -0
  49. package/scripts/ci/check-copyright-headers.sh +4 -93
  50. package/scripts/ci/check-shell-preamble.sh +4 -103
  51. package/scripts/ci/guard-gitleaks-checkout.sh +4 -54
  52. package/scripts/diagnostics/a2a-conformance.sh +4 -4
  53. package/scripts/diagnostics/alias-governance.sh +1 -1
  54. package/scripts/diagnostics/aliases-cheatsheet.sh +2 -2
  55. package/scripts/diagnostics/benchmark.sh +5 -5
  56. package/scripts/diagnostics/conflicts.sh +2 -2
  57. package/scripts/diagnostics/doctor-unified.sh +3 -3
  58. package/scripts/diagnostics/doctor.sh +10 -10
  59. package/scripts/diagnostics/drift-dashboard.sh +2 -2
  60. package/scripts/diagnostics/health.sh +4 -4
  61. package/scripts/diagnostics/history-analysis.sh +2 -2
  62. package/scripts/diagnostics/mcp-doctor.sh +10 -7
  63. package/scripts/diagnostics/perf.sh +5 -5
  64. package/scripts/diagnostics/scorecard.sh +4 -4
  65. package/scripts/diagnostics/security-score.sh +25 -6
  66. package/scripts/diagnostics/smoke-test.sh +2 -2
  67. package/scripts/diagnostics/snapshot.sh +2 -2
  68. package/scripts/diagnostics/verify.sh +4 -4
  69. package/scripts/diagnostics/version-locks.sh +13 -3
  70. package/scripts/diagnostics/workstation-attestation.sh +14 -14
  71. package/scripts/dot/commands/agent.sh +8 -0
  72. package/scripts/dot/commands/agents.sh +14 -4
  73. package/scripts/dot/commands/ai.sh +156 -37
  74. package/scripts/dot/commands/appearance.sh +2 -2
  75. package/scripts/dot/commands/core.sh +2 -2
  76. package/scripts/dot/commands/diagnostics.sh +5 -5
  77. package/scripts/dot/commands/env-emit.sh +202 -0
  78. package/scripts/dot/commands/fleet.sh +22 -16
  79. package/scripts/dot/commands/init.sh +4 -4
  80. package/scripts/dot/commands/lint.sh +9 -4
  81. package/scripts/dot/commands/manual.sh +3 -3
  82. package/scripts/dot/commands/meta.sh +12 -6
  83. package/scripts/dot/commands/patterns.sh +2 -2
  84. package/scripts/dot/commands/registry.sh +4 -4
  85. package/scripts/dot/commands/restore.sh +4 -4
  86. package/scripts/dot/commands/secrets.sh +4 -3
  87. package/scripts/dot/commands/security.sh +2 -2
  88. package/scripts/dot/commands/tools.sh +13 -3
  89. package/scripts/dot/powershell/Dot.psm1 +199 -0
  90. package/scripts/fonts/install-nerd-fonts.sh +2 -2
  91. package/scripts/git-hooks/pre-commit-audit.sh +3 -3
  92. package/scripts/git-hooks/pre-push +13 -0
  93. package/scripts/ops/ai-setup.sh +1 -1
  94. package/scripts/ops/bundle.sh +3 -3
  95. package/scripts/ops/chaos.sh +2 -2
  96. package/scripts/ops/chezmoi-apply.sh +12 -6
  97. package/scripts/ops/heal.sh +4 -4
  98. package/scripts/ops/post-apply-repair.sh +2 -2
  99. package/scripts/ops/prewarm.sh +2 -2
  100. package/scripts/ops/release.sh +4 -4
  101. package/scripts/ops/rollback.sh +4 -4
  102. package/scripts/ops/setup.sh +2 -2
  103. package/scripts/qa/check-version-consistency.sh +123 -0
  104. package/scripts/qa/coverage-baseline.sh +1 -1
  105. package/scripts/qa/docs-coverage.sh +2 -2
  106. package/scripts/qa/powershell-contract.ps1 +1 -1
  107. package/scripts/qa/scorecard-snapshot.sh +127 -0
  108. package/scripts/security/backup.sh +2 -2
  109. package/scripts/security/dns-doh.sh +4 -4
  110. package/scripts/security/encryption-check.sh +4 -4
  111. package/scripts/security/enforce-policies.sh +2 -2
  112. package/scripts/security/firewall.sh +4 -4
  113. package/scripts/security/lock-screen.sh +4 -4
  114. package/scripts/security/manage-secrets.sh +2 -2
  115. package/scripts/security/ssh-cert.sh +2 -2
  116. package/scripts/security/telemetry-kill.sh +4 -4
  117. package/scripts/security/usb-safety.sh +4 -4
  118. package/scripts/theme/extract-heic-frames.sh +114 -0
  119. package/scripts/theme/rebuild-themes.sh +31 -2
  120. package/scripts/theme/switch.sh +13 -6
  121. package/scripts/theme/wallpaper-sync.sh +297 -93
  122. package/scripts/tuning/linux.sh +2 -2
  123. package/scripts/tuning/macos.sh +2 -2
  124. package/scripts/version-sync.sh +74 -10
  125. package/dot_config/.module-manifest.json +0 -69
  126. package/dot_config/ai/identity.md +0 -23
  127. package/dot_config/ai/patterns/architect.md +0 -16
  128. package/dot_config/ai/patterns/hardener.md +0 -15
  129. package/dot_config/ai/patterns/refactor.md +0 -15
  130. package/dot_config/aider/aider.conf.yml +0 -32
  131. package/dot_config/alacritty/alacritty.toml.tmpl +0 -55
  132. package/dot_config/ansible/ansible.cfg +0 -11
  133. package/dot_config/atuin/config.toml.tmpl +0 -47
  134. package/dot_config/bat/config +0 -23
  135. package/dot_config/brave-flags.conf.tmpl +0 -7
  136. package/dot_config/btop/btop.conf +0 -16
  137. package/dot_config/btop/themes/tokyonight.theme +0 -34
  138. package/dot_config/bun/bunfig.toml.tmpl +0 -33
  139. package/dot_config/claude/mcp_servers.json +0 -20
  140. package/dot_config/containers/containers.conf +0 -14
  141. package/dot_config/curl/dot_curlrc +0 -18
  142. package/dot_config/dlv/config.yml +0 -39
  143. package/dot_config/docker/config.json +0 -15
  144. package/dot_config/dotfiles/agent-card.json +0 -29
  145. package/dot_config/dotfiles/agent-profiles.json +0 -92
  146. package/dot_config/dotfiles/boot/README.md +0 -13
  147. package/dot_config/dotfiles/grub/README.md +0 -13
  148. package/dot_config/dotfiles/lock/README.md +0 -13
  149. package/dot_config/dotfiles/mcp-lock.json +0 -33
  150. package/dot_config/dotfiles/mcp-policy.json +0 -52
  151. package/dot_config/dotfiles/mcp-registry.json +0 -47
  152. package/dot_config/dotfiles/model-registry.json +0 -20
  153. package/dot_config/dotfiles/policy-bundles.json +0 -38
  154. package/dot_config/dotfiles/prompt-registry.json +0 -16
  155. package/dot_config/dotfiles/versions.env +0 -18
  156. package/dot_config/duf/duf.conf +0 -6
  157. package/dot_config/duti/defaults.duti +0 -5
  158. package/dot_config/emoji/emoji.txt +0 -34
  159. package/dot_config/environment.d/50-ssh-agent.conf +0 -2
  160. package/dot_config/environment.d/90-wayland.conf +0 -19
  161. package/dot_config/fastfetch/config.jsonc +0 -28
  162. package/dot_config/firefox/user.js.tmpl +0 -58
  163. package/dot_config/fish/completions/dot-theme-sync.fish.tmpl +0 -9
  164. package/dot_config/fish/completions/dot.fish.tmpl +0 -115
  165. package/dot_config/fish/conf.d/000-perf-cache.fish +0 -56
  166. package/dot_config/fish/conf.d/aliases.fish.tmpl +0 -77
  167. package/dot_config/fish/conf.d/direnv.fish +0 -4
  168. package/dot_config/fish/conf.d/env.fish.tmpl +0 -48
  169. package/dot_config/fish/conf.d/functions.fish.tmpl +0 -22
  170. package/dot_config/fish/conf.d/init.fish.tmpl +0 -172
  171. package/dot_config/fish/conf.d/mise-activate.fish +0 -5
  172. package/dot_config/fish/config.fish.tmpl +0 -44
  173. package/dot_config/fish/fish_plugins +0 -1
  174. package/dot_config/fish/functions/_.fish +0 -3
  175. package/dot_config/fish/functions/_cached_eval.fish +0 -131
  176. package/dot_config/fish/functions/_cached_eval_clear.fish +0 -17
  177. package/dot_config/fish/functions/als.fish +0 -46
  178. package/dot_config/fish/functions/bg-upgrade.fish +0 -7
  179. package/dot_config/fish/functions/c.fish +0 -3
  180. package/dot_config/fish/functions/cat.fish +0 -9
  181. package/dot_config/fish/functions/d.fish +0 -7
  182. package/dot_config/fish/functions/dot.fish +0 -34
  183. package/dot_config/fish/functions/h.fish +0 -3
  184. package/dot_config/fish/functions/l.fish +0 -7
  185. package/dot_config/fish/functions/la.fish +0 -7
  186. package/dot_config/fish/functions/ll.fish +0 -7
  187. package/dot_config/fish/functions/log_error.fish +0 -13
  188. package/dot_config/fish/functions/log_info.fish +0 -13
  189. package/dot_config/fish/functions/lr.fish +0 -7
  190. package/dot_config/fish/functions/lra.fish +0 -7
  191. package/dot_config/fish/functions/ls.fish +0 -7
  192. package/dot_config/fish/functions/lt.fish +0 -7
  193. package/dot_config/fish/functions/lta.fish +0 -7
  194. package/dot_config/fish/functions/notify-run.fish +0 -11
  195. package/dot_config/fish/functions/q.fish +0 -3
  196. package/dot_config/fish/functions/silent-run.fish +0 -7
  197. package/dot_config/fish/functions/yy.fish +0 -8
  198. package/dot_config/flatpak/flatpak.list +0 -4
  199. package/dot_config/fontconfig/fonts.conf.tmpl +0 -57
  200. package/dot_config/foot/foot.ini.tmpl +0 -33
  201. package/dot_config/fuzzel/fuzzel.ini.tmpl +0 -18
  202. package/dot_config/fzf/fzf.zsh +0 -48
  203. package/dot_config/gem/gemrc +0 -9
  204. package/dot_config/gh/config.yml +0 -12
  205. package/dot_config/ghostty/config.tmpl +0 -165
  206. package/dot_config/git/allowed_signers.tmpl +0 -18
  207. package/dot_config/git/attributes +0 -12
  208. package/dot_config/git/commit-template +0 -10
  209. package/dot_config/git/hooks/executable_commit-msg +0 -146
  210. package/dot_config/git/ignore +0 -27
  211. package/dot_config/gnupg/gpg-agent.conf +0 -11
  212. package/dot_config/go/golangci.yml +0 -118
  213. package/dot_config/go/gopls.json +0 -30
  214. package/dot_config/goose/config.yaml +0 -29
  215. package/dot_config/gtk-3.0/gtk.css.tmpl +0 -184
  216. package/dot_config/gtk-3.0/settings.ini.tmpl +0 -27
  217. package/dot_config/gtk-4.0/gtk.css.tmpl +0 -252
  218. package/dot_config/gtk-4.0/settings.ini.tmpl +0 -18
  219. package/dot_config/htop/htoprc +0 -20
  220. package/dot_config/inputrc +0 -2
  221. package/dot_config/ipython/profile_default/ipython_config.py +0 -19
  222. package/dot_config/just/justfile +0 -122
  223. package/dot_config/k9s/config.yaml +0 -65
  224. package/dot_config/k9s/skins/catppuccin-mocha.yaml +0 -116
  225. package/dot_config/kanshi/config.tmpl +0 -22
  226. package/dot_config/karabiner/karabiner.json +0 -14
  227. package/dot_config/kitty/kitty.conf.tmpl +0 -53
  228. package/dot_config/lazydocker/config.yml +0 -186
  229. package/dot_config/lazygit/config.yml +0 -35
  230. package/dot_config/mako/config +0 -47
  231. package/dot_config/mas/masapps.txt +0 -5
  232. package/dot_config/micro/settings.json +0 -3
  233. package/dot_config/mimeapps.list +0 -77
  234. package/dot_config/minikube/config.json +0 -13
  235. package/dot_config/mise/config.toml +0 -99
  236. package/dot_config/mongosh/mongoshrc.js +0 -68
  237. package/dot_config/mpv/input.conf +0 -47
  238. package/dot_config/mpv/mpv.conf +0 -47
  239. package/dot_config/mycli/myclirc +0 -67
  240. package/dot_config/nano/nanorc +0 -28
  241. package/dot_config/ncdu/config +0 -12
  242. package/dot_config/niri/config.kdl.tmpl +0 -327
  243. package/dot_config/nushell/aliases.nu +0 -18
  244. package/dot_config/nushell/cached_eval.nu +0 -80
  245. package/dot_config/nushell/completions.nu.tmpl +0 -52
  246. package/dot_config/nushell/config.nu.tmpl +0 -86
  247. package/dot_config/nushell/env.nu.tmpl +0 -102
  248. package/dot_config/nushell/functions.nu.tmpl +0 -17
  249. package/dot_config/nvim/init.lua +0 -18
  250. package/dot_config/nvim/lazy-lock.json +0 -58
  251. package/dot_config/nvim/lua/config/autocmds.lua +0 -107
  252. package/dot_config/nvim/lua/config/keymaps.lua +0 -92
  253. package/dot_config/nvim/lua/config/lazy.lua +0 -44
  254. package/dot_config/nvim/lua/config/options.lua +0 -49
  255. package/dot_config/nvim/lua/plugins/ai.lua +0 -75
  256. package/dot_config/nvim/lua/plugins/coding.lua +0 -216
  257. package/dot_config/nvim/lua/plugins/completion.lua +0 -60
  258. package/dot_config/nvim/lua/plugins/dap.lua +0 -412
  259. package/dot_config/nvim/lua/plugins/editor.lua +0 -55
  260. package/dot_config/nvim/lua/plugins/git.lua +0 -10
  261. package/dot_config/nvim/lua/plugins/lsp.lua +0 -156
  262. package/dot_config/nvim/lua/plugins/markdown.lua +0 -18
  263. package/dot_config/nvim/lua/plugins/rust.lua +0 -34
  264. package/dot_config/nvim/lua/plugins/sessions.lua +0 -33
  265. package/dot_config/nvim/lua/plugins/ui.lua +0 -509
  266. package/dot_config/paru/paru.conf +0 -10
  267. package/dot_config/pip/pip.conf.tmpl +0 -32
  268. package/dot_config/powershell/Microsoft.PowerShell_profile.ps1.tmpl +0 -81
  269. package/dot_config/pueue/pueue.yml +0 -34
  270. package/dot_config/pypoetry/config.toml +0 -6
  271. package/dot_config/pyrightconfig.json +0 -5
  272. package/dot_config/raycast/README.md +0 -13
  273. package/dot_config/redis/redisclirc +0 -41
  274. package/dot_config/ripgrep/ripgreprc +0 -21
  275. package/dot_config/shell/00-core-paths.sh.tmpl +0 -141
  276. package/dot_config/shell/05-core-safety.sh +0 -48
  277. package/dot_config/shell/10-secrets.sh +0 -41
  278. package/dot_config/shell/40-fzf-defaults.sh.tmpl +0 -17
  279. package/dot_config/shell/40-ls-colors.sh +0 -49
  280. package/dot_config/shell/50-logic-functions-core.sh.tmpl +0 -11
  281. package/dot_config/shell/50-logic-functions.sh.tmpl +0 -11
  282. package/dot_config/shell/51-logic-functions-extra.sh.tmpl +0 -65
  283. package/dot_config/shell/90-ux-aliases.sh.tmpl +0 -121
  284. package/dot_config/shell/91-ux-aliases-lazy.sh.tmpl +0 -55
  285. package/dot_config/shell/Brewfile +0 -207
  286. package/dot_config/shell/Brewfile.cask +0 -92
  287. package/dot_config/shell/Brewfile.cli +0 -127
  288. package/dot_config/shell/README.md +0 -284
  289. package/dot_config/shell/als_data.txt.tmpl +0 -65
  290. package/dot_config/shell/custom/auto_ls.zsh +0 -20
  291. package/dot_config/shell/custom/context_suggest.zsh +0 -68
  292. package/dot_config/shell/custom/error_analysis.zsh +0 -45
  293. package/dot_config/sops/dot_sops.yaml +0 -23
  294. package/dot_config/starship.toml.tmpl +0 -202
  295. package/dot_config/swaylock/config +0 -43
  296. package/dot_config/systemd/user/dotfiles-maintenance.service +0 -8
  297. package/dot_config/systemd/user/dotfiles-maintenance.timer +0 -11
  298. package/dot_config/systemd/user/pueued.service +0 -12
  299. package/dot_config/systemd/user/ssh-agent.service +0 -12
  300. package/dot_config/task/Taskfile.yml +0 -86
  301. package/dot_config/tflint/tflint.hcl +0 -9
  302. package/dot_config/tmux/tmux.conf.tmpl +0 -223
  303. package/dot_config/topgrade.toml.tmpl +0 -54
  304. package/dot_config/user-dirs.dirs +0 -10
  305. package/dot_config/vscode/extensions.txt +0 -11
  306. package/dot_config/vscode/settings.json.tmpl +0 -82
  307. package/dot_config/waybar/config.jsonc.tmpl +0 -90
  308. package/dot_config/waybar/style.css.tmpl +0 -211
  309. package/dot_config/wezterm/wezterm.lua.tmpl +0 -64
  310. package/dot_config/wget/wgetrc +0 -12
  311. package/dot_config/xdg-desktop-portal/niri-portals.conf +0 -5
  312. package/dot_config/yarn/yarnrc.yml +0 -36
  313. package/dot_config/yazi/keymap.toml +0 -67
  314. package/dot_config/yazi/theme.toml +0 -102
  315. package/dot_config/yazi/yazi.toml +0 -40
  316. package/dot_config/zathura/zathurarc +0 -52
  317. package/dot_config/zellij/config.kdl.tmpl +0 -79
  318. package/dot_config/zsh/dot_zprofile +0 -7
  319. package/dot_config/zsh/dot_zshenv +0 -5
  320. package/dot_config/zsh/dot_zshrc.tmpl +0 -688
  321. package/dot_config/zsh/rc.d/00-alias-shims.zsh +0 -99
  322. package/dot_config/zsh/rc.d/05-ssh-agent.zsh +0 -18
  323. package/dot_config/zsh/rc.d/10-env.zsh.tmpl +0 -28
  324. package/dot_config/zsh/rc.d/20-zinit.zsh +0 -65
  325. package/dot_config/zsh/rc.d/30-options.zsh.tmpl +0 -214
  326. package/dot_config/zsh/rc.d/40-bell.zsh +0 -20
  327. package/dot_config/zsh/rc.d/50-login-fortune.zsh +0 -9
  328. package/dot_config/zsh/rc.d/99-alias-wrapper.zsh +0 -32
  329. package/dot_local/bin/executable_ai-update +0 -195
  330. package/dot_local/bin/executable_ai_core +0 -152
  331. package/dot_local/bin/executable_antigravity +0 -11
  332. package/dot_local/bin/executable_b64 +0 -84
  333. package/dot_local/bin/executable_bm +0 -79
  334. package/dot_local/bin/executable_cb +0 -39
  335. package/dot_local/bin/executable_dot +0 -636
  336. package/dot_local/bin/executable_dot-ai +0 -36
  337. package/dot_local/bin/executable_dot-bootstrap +0 -76
  338. package/dot_local/bin/executable_dot-launch-or-focus +0 -52
  339. package/dot_local/bin/executable_dot-load-benchmark +0 -31
  340. package/dot_local/bin/executable_dot-load-benchmark-pty +0 -77
  341. package/dot_local/bin/executable_dot-theme-sync +0 -952
  342. package/dot_local/bin/executable_dot_completion +0 -57
  343. package/dot_local/bin/executable_dtags +0 -28
  344. package/dot_local/bin/executable_epoch +0 -67
  345. package/dot_local/bin/executable_extract +0 -41
  346. package/dot_local/bin/executable_gbd +0 -52
  347. package/dot_local/bin/executable_gd +0 -42
  348. package/dot_local/bin/executable_git-ai-commit +0 -175
  349. package/dot_local/bin/executable_git-ai-diff +0 -169
  350. package/dot_local/bin/executable_gl +0 -101
  351. package/dot_local/bin/executable_hash +0 -161
  352. package/dot_local/bin/executable_hashsum +0 -160
  353. package/dot_local/bin/executable_hex +0 -115
  354. package/dot_local/bin/executable_jsonv +0 -78
  355. package/dot_local/bin/executable_jwt +0 -94
  356. package/dot_local/bin/executable_kill-port +0 -75
  357. package/dot_local/bin/executable_lorem +0 -118
  358. package/dot_local/bin/executable_mkscript +0 -35
  359. package/dot_local/bin/executable_monitor +0 -56
  360. package/dot_local/bin/executable_myip +0 -51
  361. package/dot_local/bin/executable_notify +0 -24
  362. package/dot_local/bin/executable_open +0 -38
  363. package/dot_local/bin/executable_pw +0 -27
  364. package/dot_local/bin/executable_rec-start +0 -46
  365. package/dot_local/bin/executable_rec-stop +0 -35
  366. package/dot_local/bin/executable_regex +0 -132
  367. package/dot_local/bin/executable_start-niri +0 -8
  368. package/dot_local/bin/executable_tmux-sessionizer +0 -314
  369. package/dot_local/bin/executable_tour +0 -177
  370. package/dot_local/bin/executable_up +0 -23
  371. package/dot_local/bin/executable_update +0 -142
  372. package/dot_local/bin/executable_uuid +0 -87
  373. package/dot_local/bin/executable_win +0 -32
  374. package/dot_local/bin/executable_yamlv +0 -57
  375. package/dot_local/share/bash-completion/completions/dot +0 -72
  376. package/dot_local/share/icons/hicolor/128x128/apps/rousseau.png +0 -0
  377. package/dot_local/share/icons/hicolor/16x16/apps/rousseau.png +0 -0
  378. package/dot_local/share/icons/hicolor/24x24/apps/rousseau.png +0 -0
  379. package/dot_local/share/icons/hicolor/256x256/apps/rousseau.png +0 -0
  380. package/dot_local/share/icons/hicolor/32x32/apps/rousseau.png +0 -0
  381. package/dot_local/share/icons/hicolor/48x48/apps/rousseau.png +0 -0
  382. package/dot_local/share/icons/hicolor/512x512/apps/rousseau.png +0 -0
  383. package/dot_local/share/icons/hicolor/64x64/apps/rousseau.png +0 -0
  384. package/dot_local/share/icons/hicolor/96x96/apps/rousseau.png +0 -0
  385. package/dot_local/share/icons/hicolor/scalable/apps/rousseau.png +0 -0
  386. package/dot_local/share/man/man1/dot.1 +0 -149
  387. package/dot_local/share/mise/plugins/kiro-cli/bin/executable_download +0 -64
  388. package/dot_local/share/mise/plugins/kiro-cli/bin/executable_install +0 -18
  389. package/dot_local/share/mise/plugins/kiro-cli/bin/executable_list-all +0 -13
  390. package/dot_local/share/wayland-sessions/niri.desktop.tmpl +0 -6
  391. package/dot_local/share/zsh/completions/.keep +0 -0
  392. package/dot_local/share/zsh/completions/_dot +0 -287
  393. package/scripts/ci/check-dangerous-chmod.sh +0 -19
  394. package/scripts/ci/check-deps-dev.sh +0 -236
  395. package/scripts/ci/check-insecure-tls.sh +0 -61
  396. package/scripts/ci/check-regression-traceability.sh +0 -67
  397. package/scripts/ci/dot-cli-startup-bench.sh +0 -126
  398. package/scripts/ci/install-chezmoi-verified.sh +0 -67
  399. package/scripts/ci/lint-reusable-pins.sh +0 -78
  400. package/scripts/ci/run-coverage.sh +0 -451
  401. package/scripts/ci/validate-chezmoidata.sh +0 -25
  402. package/scripts/ci/validate-ci-config.sh +0 -224
  403. package/scripts/ci/windows-smoke-test.ps1 +0 -136
  404. package/scripts/docs/build-manual.sh +0 -883
  405. package/scripts/docs/check-manual.sh +0 -213
  406. package/scripts/dot/lib/bento.sh +0 -50
  407. package/scripts/dot/lib/log.sh +0 -200
  408. package/scripts/dot/lib/platform.sh +0 -112
  409. package/scripts/dot/lib/ui.sh +0 -650
  410. package/scripts/dot/lib/utils.sh +0 -377
  411. package/scripts/maintenance/check-updates.sh +0 -131
  412. package/scripts/release/package-policy-bundles.sh +0 -125
@@ -0,0 +1,202 @@
1
+ #!/usr/bin/env bash
2
+ # Copyright (c) 2015-2026 Dotfiles. All rights reserved.
3
+ #
4
+ # `dot env emit` — render a portable workstation-environment
5
+ # manifest. The output is the canonical "what is installed on this
6
+ # machine + at what version + from which source" record that
7
+ # downstream tooling (CycloneDX SBOM aggregators, AgentSpec /
8
+ # AAIF agents, EU CRA compliance reports) consumes.
9
+ #
10
+ # v1 schema at docs/schema/dot-env-v1.json. Conforming to a fixed
11
+ # schema lets us re-render this manifest into any downstream format
12
+ # (AGENTS.md, devcontainer-feature.json, Brewfile, mise.toml) from
13
+ # a single source of truth — see docs/operations/MANIFEST.md.
14
+ #
15
+ # Usage:
16
+ # dot env emit # default: json
17
+ # dot env emit --format json
18
+ # dot env emit --output env.json
19
+ # dot env emit --pretty # default; --compact for one-line
20
+ #
21
+ # Exit codes:
22
+ # 0 manifest written / printed
23
+ # 1 bad usage
24
+ # 2 jq or mise missing
25
+ # 3 mise call failed
26
+
27
+ set -euo pipefail
28
+
29
+ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
30
+ # shellcheck source=../../../lib/dot/utils.sh
31
+ source "$SCRIPT_DIR/../../../lib/dot/utils.sh"
32
+
33
+ dot_env_emit() {
34
+ local format="json"
35
+ local output=""
36
+ local pretty=1
37
+
38
+ while (($#)); do
39
+ case "$1" in
40
+ --format)
41
+ format="${2:-}"
42
+ shift 2 || {
43
+ ui_err "--format needs a value"
44
+ return 1
45
+ }
46
+ ;;
47
+ --format=*)
48
+ format="${1#*=}"
49
+ shift
50
+ ;;
51
+ --output | -o)
52
+ output="${2:-}"
53
+ shift 2 || {
54
+ ui_err "--output needs a value"
55
+ return 1
56
+ }
57
+ ;;
58
+ --output=*)
59
+ output="${1#*=}"
60
+ shift
61
+ ;;
62
+ --pretty)
63
+ pretty=1
64
+ shift
65
+ ;;
66
+ --compact)
67
+ pretty=0
68
+ shift
69
+ ;;
70
+ -h | --help)
71
+ cat <<-EOF
72
+ Usage: dot env emit [--format <fmt>] [--output <path>] [--pretty|--compact]
73
+
74
+ Render the workstation-environment manifest (v1 schema).
75
+
76
+ Formats:
77
+ json (default) v1 canonical form per docs/schema/dot-env-v1.json
78
+ ndjson one JSON object per tool — easier to grep / pipe
79
+
80
+ Output:
81
+ --output FILE write to FILE (atomic mktemp + mv)
82
+ default stdout
83
+
84
+ Examples:
85
+ dot env emit # print to stdout
86
+ dot env emit --output env.json # write atomically
87
+ dot env emit --format ndjson | grep '^{"name":"node"'
88
+ EOF
89
+ return 0
90
+ ;;
91
+ *)
92
+ ui_err "unknown flag: $1"
93
+ return 1
94
+ ;;
95
+ esac
96
+ done
97
+
98
+ case "$format" in
99
+ json | ndjson) ;;
100
+ *)
101
+ ui_err "unsupported format: $format (json, ndjson)"
102
+ return 1
103
+ ;;
104
+ esac
105
+
106
+ has_command jq || {
107
+ ui_err "jq required (brew install jq / apt install jq)"
108
+ return 2
109
+ }
110
+ has_command mise || {
111
+ ui_err "mise required (the manifest's source of truth)"
112
+ return 2
113
+ }
114
+
115
+ local mise_raw
116
+ mise_raw="$(mise ls --json 2>/dev/null)" || {
117
+ ui_err "mise ls --json failed"
118
+ return 3
119
+ }
120
+
121
+ # Static fields we want in every manifest: schema version + emit
122
+ # timestamp + emitter version + repo URL + the host fingerprint
123
+ # bits chezmoi already records (os, machine).
124
+ local emitter_version
125
+ emitter_version="$(grep -E '^dotfiles_version[[:space:]]*=' \
126
+ "$(resolve_chezmoi_source_dir)/.chezmoidata.toml" 2>/dev/null |
127
+ head -1 | sed -E 's/.*"([^"]+)".*/\1/' || echo "unknown")"
128
+ local timestamp
129
+ timestamp="$(date -u +%Y-%m-%dT%H:%M:%SZ)"
130
+ local os_type machine_arch
131
+ os_type="$(uname -s 2>/dev/null || echo unknown)"
132
+ machine_arch="$(uname -m 2>/dev/null || echo unknown)"
133
+ local hostname
134
+ hostname="$(uname -n 2>/dev/null || echo unknown)"
135
+
136
+ # Build the manifest. jq does the heavy lifting: take the raw
137
+ # `mise ls --json` shape (an object keyed by tool name → array of
138
+ # installed versions) and flatten to a normalised array of tool
139
+ # records. Each record carries: name, version, source (config
140
+ # file or "orphan"), requested (semver/range/latest spec), and
141
+ # install_path (auditable absolute path).
142
+ local body
143
+ body="$(printf '%s' "$mise_raw" | jq --arg ev "$emitter_version" \
144
+ --arg ts "$timestamp" \
145
+ --arg os "$os_type" \
146
+ --arg arch "$machine_arch" \
147
+ --arg host "$hostname" '
148
+ {
149
+ schema_version: "https://sebastienrousseau.github.io/dotfiles/schema/dot-env-v1.json",
150
+ manifest_version: "1.0.0",
151
+ emitted_at: $ts,
152
+ emitter: {
153
+ name: "dot env emit",
154
+ version: $ev,
155
+ repo: "github.com/sebastienrousseau/dotfiles"
156
+ },
157
+ host: {
158
+ hostname: $host,
159
+ os: $os,
160
+ arch: $arch
161
+ },
162
+ tools: [
163
+ to_entries[] as $t
164
+ | $t.value[]
165
+ | {
166
+ name: $t.key,
167
+ version: (.version // null),
168
+ source: (.source.path // "orphan"),
169
+ source_type: (.source.type // null),
170
+ requested_version: (.requested_version // null),
171
+ install_path: (.install_path // null),
172
+ active: (.active // false)
173
+ }
174
+ ]
175
+ }
176
+ ')"
177
+
178
+ local rendered
179
+ if [[ "$format" == "ndjson" ]]; then
180
+ # NDJSON: header object on line 1, one tool per subsequent line.
181
+ rendered="$(
182
+ printf '%s' "$body" |
183
+ jq -c '
184
+ ({schema_version, manifest_version, emitted_at, emitter, host}),
185
+ (.tools[])'
186
+ )"
187
+ elif ((pretty)); then
188
+ rendered="$(printf '%s' "$body" | jq '.')"
189
+ else
190
+ rendered="$(printf '%s' "$body" | jq -c '.')"
191
+ fi
192
+
193
+ if [[ -n "$output" ]]; then
194
+ local tmp
195
+ tmp="$(mktemp "${output}.XXXXXX")"
196
+ printf '%s\n' "$rendered" >|"$tmp"
197
+ mv "$tmp" "$output"
198
+ ui_ok "manifest" "wrote $(printf '%s' "$rendered" | jq -r '.tools | length' 2>/dev/null || echo '?') tools → $output"
199
+ else
200
+ printf '%s\n' "$rendered"
201
+ fi
202
+ }
@@ -6,10 +6,10 @@
6
6
  set -euo pipefail
7
7
 
8
8
  SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
9
- # shellcheck source=../lib/utils.sh
10
- source "$SCRIPT_DIR/../lib/utils.sh"
11
- # shellcheck source=../lib/log.sh
12
- source "$SCRIPT_DIR/../lib/log.sh"
9
+ # shellcheck source=../../../lib/dot/utils.sh
10
+ source "$SCRIPT_DIR/../../../lib/dot/utils.sh"
11
+ # shellcheck source=../../../lib/dot/log.sh
12
+ source "$SCRIPT_DIR/../../../lib/dot/log.sh"
13
13
 
14
14
  dot_ui_command_banner "Fleet" "${1:-}"
15
15
 
@@ -18,7 +18,7 @@ _FLEET_EVENTS_FILE="$_FLEET_STATE_DIR/events.jsonl"
18
18
 
19
19
  _fleet_enabled() {
20
20
  local data_file
21
- data_file="$(resolve_source_dir)/.chezmoidata.toml"
21
+ data_file="$(resolve_chezmoi_source_dir)/.chezmoidata.toml"
22
22
  if [[ -f "$data_file" ]] && grep -q '^enabled = true' "$data_file" 2>/dev/null; then
23
23
  return 0
24
24
  fi
@@ -27,7 +27,7 @@ _fleet_enabled() {
27
27
 
28
28
  _fleet_node_id() {
29
29
  local data_file node_id=""
30
- data_file="$(resolve_source_dir)/.chezmoidata.toml"
30
+ data_file="$(resolve_chezmoi_source_dir)/.chezmoidata.toml"
31
31
  if [[ -f "$data_file" ]]; then
32
32
  node_id="$(sed -n 's/^node_id = "\(.*\)"/\1/p' "$data_file" | head -1)"
33
33
  fi
@@ -39,7 +39,7 @@ _fleet_node_id() {
39
39
 
40
40
  _fleet_namespace() {
41
41
  local data_file ns=""
42
- data_file="$(resolve_source_dir)/.chezmoidata.toml"
42
+ data_file="$(resolve_chezmoi_source_dir)/.chezmoidata.toml"
43
43
  if [[ -f "$data_file" ]]; then
44
44
  ns="$(sed -n 's/^namespace = "\(.*\)"/\1/p' "$data_file" | head -1)"
45
45
  fi
@@ -67,7 +67,7 @@ _fleet_emit_event() {
67
67
  # Forward to endpoint if configured
68
68
  local endpoint=""
69
69
  local data_file
70
- data_file="$(resolve_source_dir)/.chezmoidata.toml"
70
+ data_file="$(resolve_chezmoi_source_dir)/.chezmoidata.toml"
71
71
  if [[ -f "$data_file" ]]; then
72
72
  endpoint="$(sed -n 's/^endpoint = "\(.*\)"/\1/p' "$data_file" | head -1)"
73
73
  fi
@@ -271,7 +271,7 @@ cmd_fleet_namespace() {
271
271
  ui_ok "Active" "$ns"
272
272
 
273
273
  local data_file
274
- data_file="$(resolve_source_dir)/.chezmoidata.toml"
274
+ data_file="$(resolve_chezmoi_source_dir)/.chezmoidata.toml"
275
275
  if [[ -f "$data_file" ]]; then
276
276
  echo ""
277
277
  ui_section "Available Namespaces"
@@ -289,7 +289,7 @@ cmd_fleet_namespace() {
289
289
  [[ -n "$new_ns" ]] || die "Usage: dot fleet namespace set <name>"
290
290
  validate_name "$new_ns" "namespace"
291
291
  local data_file
292
- data_file="$(resolve_source_dir)/.chezmoidata.toml"
292
+ data_file="$(resolve_chezmoi_source_dir)/.chezmoidata.toml"
293
293
  if grep -q "^namespace = " "$data_file" 2>/dev/null; then
294
294
  # Atomic write: render into a tempfile + mv so concurrent
295
295
  # `dot fleet namespace set` callers can't corrupt the TOML.
@@ -322,7 +322,8 @@ cmd_fleet_enforce() {
322
322
  shift || true
323
323
 
324
324
  local repo_root
325
- repo_root="$(resolve_source_dir)"
325
+ repo_root="$(resolve_chezmoi_source_dir)"
326
+ [[ -z "$repo_root" ]] && repo_root="$(resolve_source_dir)"
326
327
  local profiles_file="$repo_root/dot_config/dotfiles/agent-profiles.json"
327
328
 
328
329
  case "$subcommand" in
@@ -582,16 +583,21 @@ EOF
582
583
  fi
583
584
  }
584
585
 
585
- local running=0
586
+ # Throttle to `jobs` concurrent workers. `wait -n` (wait for the next
587
+ # job to finish) is bash 4.3+, but macOS ships bash 3.2 — there it
588
+ # silently fails and the throttle collapses to unbounded parallelism.
589
+ # Track PIDs and block on the oldest when at capacity instead; works on
590
+ # bash 3.2 and 4+ alike.
591
+ local _pids=()
586
592
  while IFS=$'\t' read -r name ssh profile; do
587
593
  [[ -n "$name" && -n "$ssh" ]] || continue
588
594
  total=$((total + 1))
589
- while ((running >= jobs)); do
590
- wait -n 2>/dev/null || break
591
- running=$((running - 1))
595
+ while ((${#_pids[@]} >= jobs)); do
596
+ wait "${_pids[0]}" 2>/dev/null || true
597
+ _pids=("${_pids[@]:1}")
592
598
  done
593
599
  _fleet_apply_one "$name" "$ssh" "$effective_cmd" "$tmpdir" &
594
- running=$((running + 1))
600
+ _pids+=("$!")
595
601
  done <<<"$entries"
596
602
  wait
597
603
 
@@ -25,10 +25,10 @@
25
25
  set -euo pipefail
26
26
 
27
27
  SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
28
- # shellcheck source=../lib/ui.sh disable=SC1091
29
- source "$SCRIPT_DIR/../lib/ui.sh"
30
- # shellcheck source=../lib/utils.sh disable=SC1091
31
- source "$SCRIPT_DIR/../lib/utils.sh"
28
+ # shellcheck source=../../../lib/dot/ui.sh disable=SC1091
29
+ source "$SCRIPT_DIR/../../../lib/dot/ui.sh"
30
+ # shellcheck source=../../../lib/dot/utils.sh disable=SC1091
31
+ source "$SCRIPT_DIR/../../../lib/dot/utils.sh"
32
32
 
33
33
  _init_resolve_url() {
34
34
  local arg="$1"
@@ -6,8 +6,8 @@
6
6
  set -euo pipefail
7
7
 
8
8
  SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
9
- # shellcheck source=../lib/utils.sh
10
- source "$SCRIPT_DIR/../lib/utils.sh"
9
+ # shellcheck source=../../../lib/dot/utils.sh
10
+ source "$SCRIPT_DIR/../../../lib/dot/utils.sh"
11
11
 
12
12
  dot_ui_command_banner "Lint" "${1:-}"
13
13
 
@@ -34,6 +34,11 @@ cmd_lint() {
34
34
  files+=("$src_dir/install.sh")
35
35
  fi
36
36
 
37
+ # Post-Phase-4b chezmoi-tracked content lives under defaults/.
38
+ local chezmoi_src
39
+ chezmoi_src="$(resolve_chezmoi_source_dir)"
40
+ [[ -z "$chezmoi_src" ]] && chezmoi_src="$src_dir"
41
+
37
42
  # dot_local/bin/executable_* scripts (shell scripts only)
38
43
  while IFS= read -r -d '' f; do
39
44
  if file "$f" 2>/dev/null | grep -qiE 'shell|bash|sh'; then
@@ -41,12 +46,12 @@ cmd_lint() {
41
46
  elif head -1 "$f" 2>/dev/null | grep -qE '^#!.*(bash|sh)'; then
42
47
  files+=("$f")
43
48
  fi
44
- done < <(find "$src_dir/dot_local/bin" -name 'executable_*' -type f -print0 2>/dev/null)
49
+ done < <(find "$chezmoi_src/dot_local/bin" -name 'executable_*' -type f -print0 2>/dev/null)
45
50
 
46
51
  # .chezmoitemplates/*.sh (non-.tmpl shell scripts)
47
52
  while IFS= read -r -d '' f; do
48
53
  files+=("$f")
49
- done < <(find "$src_dir/.chezmoitemplates" -name '*.sh' -type f -print0 2>/dev/null)
54
+ done < <(find "$chezmoi_src/.chezmoitemplates" -name '*.sh' -type f -print0 2>/dev/null)
50
55
 
51
56
  local total=${#files[@]}
52
57
  if [[ "$total" -eq 0 ]]; then
@@ -16,8 +16,8 @@
16
16
  set -euo pipefail
17
17
 
18
18
  SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
19
- # shellcheck source=../lib/utils.sh
20
- source "$SCRIPT_DIR/../lib/utils.sh"
19
+ # shellcheck source=../../../lib/dot/utils.sh
20
+ source "$SCRIPT_DIR/../../../lib/dot/utils.sh"
21
21
 
22
22
  MANUAL_URL="${DOTFILES_MANUAL_URL:-https://sebastienrousseau.github.io/dotfiles/manual}"
23
23
  CACHE_DIR="${XDG_CACHE_HOME:-$HOME/.cache}/dotfiles/manual"
@@ -66,7 +66,7 @@ resolve_source() {
66
66
  echo "$src_dir/$fname"
67
67
  return 0
68
68
  fi
69
- ui_err "manual" "local build not found at $src_dir/$fname — run bash scripts/docs/build-manual.sh"
69
+ ui_err "manual" "local build not found at $src_dir/$fname — run bash tools/docs/build-manual.sh"
70
70
  return 1
71
71
  fi
72
72
 
@@ -6,10 +6,10 @@
6
6
  set -euo pipefail
7
7
 
8
8
  _META_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
9
- # shellcheck source=../lib/utils.sh
10
- source "$_META_DIR/../lib/utils.sh"
11
- # shellcheck source=../lib/log.sh
12
- source "$_META_DIR/../lib/log.sh"
9
+ # shellcheck source=../../../lib/dot/utils.sh
10
+ source "$_META_DIR/../../../lib/dot/utils.sh"
11
+ # shellcheck source=../../../lib/dot/log.sh
12
+ source "$_META_DIR/../../../lib/dot/log.sh"
13
13
  # shellcheck source=agent.sh
14
14
  source "$_META_DIR/agent.sh"
15
15
 
@@ -92,7 +92,12 @@ cmd_docs() {
92
92
 
93
93
  cmd_learn() {
94
94
  local dot_bin
95
- dot_bin="$(dirname "${BASH_SOURCE[0]}")/../../../dot_local/bin"
95
+ # Post-Phase-4b: dot_local/ lives under defaults/. Legacy layout
96
+ # (older deployments before .chezmoiroot activation) kept it at
97
+ # repo root — probe both.
98
+ dot_bin="$(dirname "${BASH_SOURCE[0]}")/../../../defaults/dot_local/bin"
99
+ [[ -f "$dot_bin/executable_tour" ]] ||
100
+ dot_bin="$(dirname "${BASH_SOURCE[0]}")/../../../dot_local/bin"
96
101
  if [ -f "$dot_bin/executable_tour" ]; then
97
102
  exec bash "$dot_bin/executable_tour" "$@"
98
103
  fi
@@ -176,7 +181,8 @@ cmd_mcp() {
176
181
  ;;
177
182
  registry)
178
183
  local repo_root registry_file json_mode=0
179
- repo_root="$(require_source_dir)"
184
+ repo_root="$(resolve_chezmoi_source_dir)"
185
+ [[ -z "$repo_root" ]] && repo_root="$(require_source_dir)"
180
186
  registry_file="${MCP_REGISTRY_CONFIG:-$repo_root/dot_config/dotfiles/mcp-registry.json}"
181
187
  if [[ "${1:-}" == "registry" ]]; then
182
188
  shift || true
@@ -6,8 +6,8 @@
6
6
  set -euo pipefail
7
7
 
8
8
  SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
9
- # shellcheck source=../lib/utils.sh
10
- source "$SCRIPT_DIR/../lib/utils.sh"
9
+ # shellcheck source=../../../lib/dot/utils.sh
10
+ source "$SCRIPT_DIR/../../../lib/dot/utils.sh"
11
11
 
12
12
  PATTERN_DIR="${XDG_CONFIG_HOME:-$HOME/.config}/ai/patterns"
13
13
  mkdir -p "$PATTERN_DIR"
@@ -43,10 +43,10 @@
43
43
  set -euo pipefail
44
44
 
45
45
  SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
46
- # shellcheck source=../lib/ui.sh disable=SC1091
47
- source "$SCRIPT_DIR/../lib/ui.sh"
48
- # shellcheck source=../lib/utils.sh disable=SC1091
49
- source "$SCRIPT_DIR/../lib/utils.sh"
46
+ # shellcheck source=../../../lib/dot/ui.sh disable=SC1091
47
+ source "$SCRIPT_DIR/../../../lib/dot/ui.sh"
48
+ # shellcheck source=../../../lib/dot/utils.sh disable=SC1091
49
+ source "$SCRIPT_DIR/../../../lib/dot/utils.sh"
50
50
 
51
51
  _registry_default_url() {
52
52
  printf '%s\n' "https://sebastienrousseau.github.io/dotfiles/registry.json"
@@ -6,10 +6,10 @@
6
6
  set -euo pipefail
7
7
 
8
8
  SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
9
- # shellcheck source=../lib/utils.sh
10
- source "$SCRIPT_DIR/../lib/utils.sh"
11
- # shellcheck source=../lib/log.sh
12
- source "$SCRIPT_DIR/../lib/log.sh"
9
+ # shellcheck source=../../../lib/dot/utils.sh
10
+ source "$SCRIPT_DIR/../../../lib/dot/utils.sh"
11
+ # shellcheck source=../../../lib/dot/log.sh
12
+ source "$SCRIPT_DIR/../../../lib/dot/log.sh"
13
13
 
14
14
  DOTFILES_DIR="${DOTFILES_DIR:-$HOME/.dotfiles}"
15
15
  BACKUP_DIR="${XDG_DATA_HOME:-$HOME/.local/share}/dotfiles/backups"
@@ -6,8 +6,8 @@
6
6
  set -euo pipefail
7
7
 
8
8
  SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
9
- # shellcheck source=../lib/utils.sh
10
- source "$SCRIPT_DIR/../lib/utils.sh"
9
+ # shellcheck source=../../../lib/dot/utils.sh
10
+ source "$SCRIPT_DIR/../../../lib/dot/utils.sh"
11
11
  # shellcheck source=../../lib/secrets_provider.sh
12
12
  source "$SCRIPT_DIR/../../lib/secrets_provider.sh"
13
13
 
@@ -15,7 +15,8 @@ dot_ui_command_banner "Secrets" "${1:-}"
15
15
 
16
16
  dot_data_file() {
17
17
  local src_dir
18
- src_dir="$(require_source_dir)"
18
+ src_dir="$(resolve_chezmoi_source_dir)"
19
+ [[ -z "$src_dir" ]] && src_dir="$(require_source_dir)"
19
20
  printf "%s\n" "$src_dir/.chezmoidata.toml"
20
21
  }
21
22
 
@@ -6,8 +6,8 @@
6
6
  set -euo pipefail
7
7
 
8
8
  SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
9
- # shellcheck source=../lib/utils.sh
10
- source "$SCRIPT_DIR/../lib/utils.sh"
9
+ # shellcheck source=../../../lib/dot/utils.sh
10
+ source "$SCRIPT_DIR/../../../lib/dot/utils.sh"
11
11
 
12
12
  dot_ui_command_banner "Security" "${1:-}"
13
13
 
@@ -6,8 +6,8 @@
6
6
  set -euo pipefail
7
7
 
8
8
  _TOOLS_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
9
- # shellcheck source=../lib/utils.sh
10
- source "$_TOOLS_DIR/../lib/utils.sh"
9
+ # shellcheck source=../../../lib/dot/utils.sh
10
+ source "$_TOOLS_DIR/../../../lib/dot/utils.sh"
11
11
  # shellcheck source=aliases.sh
12
12
  source "$_TOOLS_DIR/aliases.sh"
13
13
 
@@ -348,6 +348,16 @@ cmd_log_rotate() {
348
348
  }
349
349
 
350
350
  cmd_env_mise() {
351
+ # `dot env emit` is a separate sub-handler — it doesn't need mise
352
+ # at command-time, only when actually invoked (the script checks).
353
+ if [[ "${1:-}" == "emit" ]]; then
354
+ shift
355
+ # shellcheck source=./env-emit.sh
356
+ source "$(require_source_dir)/scripts/dot/commands/env-emit.sh"
357
+ dot_env_emit "$@"
358
+ return $?
359
+ fi
360
+
351
361
  if ! has_command mise; then
352
362
  ui_err "mise not installed (required for dot env)"
353
363
  exit 1
@@ -425,7 +435,7 @@ cmd_env_mise() {
425
435
 
426
436
  cmd_profile() {
427
437
  local data_file
428
- data_file="$(resolve_source_dir)/.chezmoidata.toml"
438
+ data_file="$(resolve_chezmoi_source_dir)/.chezmoidata.toml"
429
439
  if [[ ! -f "$data_file" ]]; then
430
440
  die ".chezmoidata.toml not found"
431
441
  fi