@sebastienrousseau/dotfiles 0.2.469 → 0.2.481

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 (490) hide show
  1. package/CHANGELOG.md +285 -0
  2. package/README.md +236 -319
  3. package/docs/ALIASES.md +128 -0
  4. package/docs/ARCHITECTURE.md +229 -0
  5. package/docs/COMPLIANCE.md +47 -0
  6. package/docs/COPYRIGHT +7 -0
  7. package/docs/FEATURES.md +166 -0
  8. package/docs/FONTS.md +147 -0
  9. package/docs/INSTALL.md +119 -0
  10. package/docs/KEYS.md +40 -0
  11. package/docs/KEY_ROTATION.md +219 -0
  12. package/docs/LEGACY_ROADMAP.md +142 -0
  13. package/docs/NEOVIM_IDE_GUIDE.md +52 -0
  14. package/docs/OPERATIONS.md +130 -0
  15. package/docs/PLAN.md +161 -0
  16. package/docs/PR_DESCRIPTION.md +149 -0
  17. package/docs/README.md +269 -0
  18. package/docs/REPO_AUDIT.md +23 -0
  19. package/docs/ROADMAP.md +148 -0
  20. package/docs/SCREENSHOTS.md +116 -0
  21. package/docs/SECRETS.md +76 -0
  22. package/docs/SECURITY.md +30 -0
  23. package/docs/SECURITY_CHECKLIST.md +25 -0
  24. package/docs/TASK.md +99 -0
  25. package/docs/TESTING.md +190 -0
  26. package/docs/TOOLS.md +146 -0
  27. package/docs/TROUBLESHOOTING.md +112 -0
  28. package/docs/UTILS.md +105 -0
  29. package/docs/WALKTHROUGH.md +165 -0
  30. package/docs/WSL2_NIX_TROUBLESHOOTING.md +723 -0
  31. package/docs/adr/ADR-001-ci-cd-pipeline.md +101 -0
  32. package/docs/adr/ADR-002-shell-performance.md +121 -0
  33. package/docs/adr/ADR-003-security-first.md +140 -0
  34. package/docs/adr/ADR-004-cli-architecture.md +157 -0
  35. package/docs/adr/ADR-005-chezmoi-choice.md +89 -0
  36. package/docs/adr/ADR-006-shell-selection.md +115 -0
  37. package/docs/adr/README.md +33 -0
  38. package/docs/themes/README.md +20 -0
  39. package/dot_config/aider/aider.conf.yml +32 -0
  40. package/dot_config/alacritty/alacritty.toml.tmpl +483 -0
  41. package/dot_config/ansible/ansible.cfg.tmpl +11 -0
  42. package/dot_config/atuin/config.toml +23 -0
  43. package/dot_config/bat/config +8 -0
  44. package/dot_config/brave-flags.conf.tmpl +7 -0
  45. package/dot_config/btop/btop.conf +16 -0
  46. package/dot_config/btop/themes/tokyonight.theme +34 -0
  47. package/dot_config/bun/bunfig.toml.tmpl +33 -0
  48. package/dot_config/claude/mcp_servers.json +49 -0
  49. package/dot_config/clippy.toml +55 -0
  50. package/dot_config/containers/containers.conf +14 -0
  51. package/dot_config/curl/dot_curlrc +18 -0
  52. package/dot_config/dlv/config.yml +39 -0
  53. package/dot_config/docker/config.json.tmpl +15 -0
  54. package/dot_config/dotfiles/boot/README.md +11 -0
  55. package/dot_config/dotfiles/grub/README.md +11 -0
  56. package/dot_config/dotfiles/lock/README.md +11 -0
  57. package/dot_config/dotfiles/versions.env.tmpl +19 -0
  58. package/dot_config/duf/duf.conf +6 -0
  59. package/dot_config/duti/defaults.duti +5 -0
  60. package/dot_config/emoji/emoji.txt +34 -0
  61. package/dot_config/fastfetch/config.jsonc +28 -0
  62. package/dot_config/firefox/user.js +8 -0
  63. package/dot_config/flatpak/flatpak.list +4 -0
  64. package/dot_config/fontconfig/fonts.conf.tmpl +44 -0
  65. package/dot_config/gh/config.yml +12 -0
  66. package/dot_config/ghostty/config.tmpl +661 -0
  67. package/dot_config/git/attributes +12 -0
  68. package/dot_config/git/config.tmpl +77 -0
  69. package/dot_config/git/ignore +27 -0
  70. package/dot_config/gnupg/gpg-agent.conf.tmpl +11 -0
  71. package/dot_config/go/aliases.sh +61 -0
  72. package/dot_config/go/env.sh +24 -0
  73. package/dot_config/go/golangci.yml +118 -0
  74. package/dot_config/go/gopls.json +30 -0
  75. package/dot_config/goose/config.yaml +29 -0
  76. package/dot_config/gtk-3.0/gtk.css.tmpl +305 -0
  77. package/dot_config/gtk-3.0/settings.ini.tmpl +66 -0
  78. package/dot_config/gtk-4.0/gtk.css.tmpl +309 -0
  79. package/dot_config/gtk-4.0/settings.ini.tmpl +21 -0
  80. package/dot_config/htop/htoprc +20 -0
  81. package/dot_config/ice/README.md +13 -0
  82. package/dot_config/inputrc +2 -0
  83. package/dot_config/ipython/profile_default/ipython_config.py.tmpl +5 -0
  84. package/dot_config/just/justfile +104 -0
  85. package/dot_config/k9s/config.yaml.tmpl +65 -0
  86. package/dot_config/k9s/skins/catppuccin-mocha.yaml +116 -0
  87. package/dot_config/karabiner/karabiner.json +14 -0
  88. package/dot_config/kitty/kitty.conf.tmpl +517 -0
  89. package/dot_config/lazydocker/config.yml +186 -0
  90. package/dot_config/lazygit/config.yml +23 -0
  91. package/dot_config/lsd/config.yaml +19 -0
  92. package/dot_config/mas/masapps.txt +5 -0
  93. package/dot_config/minikube/config.json +13 -0
  94. package/dot_config/mise/config.toml +41 -0
  95. package/dot_config/mongosh/mongoshrc.js +67 -0
  96. package/dot_config/mycli/myclirc +67 -0
  97. package/dot_config/nano/nanorc +28 -0
  98. package/dot_config/ncdu/config +12 -0
  99. package/dot_config/nvim/init.lua +4 -0
  100. package/dot_config/nvim/lazy-lock.json +27 -0
  101. package/dot_config/nvim/lua/config/autocmds.lua +63 -0
  102. package/dot_config/nvim/lua/config/keymaps.lua +87 -0
  103. package/dot_config/nvim/lua/config/lazy.lua +34 -0
  104. package/dot_config/nvim/lua/config/options.lua +48 -0
  105. package/dot_config/nvim/lua/plugins/coding.lua +234 -0
  106. package/dot_config/nvim/lua/plugins/dap.lua +201 -0
  107. package/dot_config/nvim/lua/plugins/editor.lua +59 -0
  108. package/dot_config/nvim/lua/plugins/git.lua +9 -0
  109. package/dot_config/nvim/lua/plugins/lsp.lua +221 -0
  110. package/dot_config/nvim/lua/plugins/markdown.lua +17 -0
  111. package/dot_config/nvim/lua/plugins/rust.lua +33 -0
  112. package/dot_config/nvim/lua/plugins/sessions.lua +32 -0
  113. package/dot_config/nvim/lua/plugins/ui.lua +537 -0
  114. package/dot_config/nvim/snippets/all.lua +9 -0
  115. package/dot_config/nvim/snippets/python.lua +16 -0
  116. package/dot_config/pip/pip.conf.tmpl +32 -0
  117. package/dot_config/pypoetry/config.toml.tmpl +6 -0
  118. package/dot_config/pyrightconfig.json.tmpl +5 -0
  119. package/dot_config/raycast/README.md +13 -0
  120. package/dot_config/redis/redisclirc +41 -0
  121. package/dot_config/shell/00-container-detect.sh +53 -0
  122. package/dot_config/shell/00-core-paths.sh.tmpl +95 -0
  123. package/dot_config/shell/05-core-safety.sh.tmpl +13 -0
  124. package/dot_config/shell/40-ls-colors.sh.tmpl +31 -0
  125. package/dot_config/shell/50-logic-functions.sh.tmpl +10 -0
  126. package/dot_config/shell/90-theme-switch.sh +70 -0
  127. package/dot_config/shell/90-ux-aliases.sh.tmpl +35 -0
  128. package/dot_config/shell/91-ux-aliases-lazy.sh.tmpl +23 -0
  129. package/dot_config/shell/Brewfile +207 -0
  130. package/dot_config/shell/Brewfile.cask +92 -0
  131. package/dot_config/shell/Brewfile.cli +119 -0
  132. package/dot_config/shell/README.md +267 -0
  133. package/dot_config/shell/custom/context_suggest.zsh +68 -0
  134. package/dot_config/shell/custom/error_analysis.zsh +45 -0
  135. package/dot_config/sops/dot_sops.yaml +23 -0
  136. package/dot_config/starship.toml.tmpl +124 -0
  137. package/dot_config/task/Taskfile.yml +86 -0
  138. package/dot_config/tflint/tflint.hcl.tmpl +9 -0
  139. package/dot_config/tmux/tmux.conf.tmpl +181 -0
  140. package/dot_config/topgrade/topgrade.toml.tmpl +42 -0
  141. package/dot_config/vscode/extensions.txt +11 -0
  142. package/dot_config/vscode/settings.json.tmpl +123 -0
  143. package/dot_config/waybar/style.css +8 -0
  144. package/dot_config/wezterm/wezterm.lua.tmpl +236 -0
  145. package/dot_config/wget/wgetrc +12 -0
  146. package/dot_config/yarn/yarnrc.yml.tmpl +36 -0
  147. package/dot_config/yazi/yazi.toml +40 -0
  148. package/dot_config/zellij/config.kdl +79 -0
  149. package/dot_config/zsh/dot_zprofile +13 -0
  150. package/dot_config/zsh/dot_zshenv +6 -0
  151. package/dot_config/zsh/dot_zshrc.tmpl +199 -0
  152. package/dot_config/zsh/rc.d/05-ssh-agent.zsh +5 -0
  153. package/dot_config/zsh/rc.d/10-env.zsh.tmpl +28 -0
  154. package/dot_config/zsh/rc.d/20-zinit.zsh.tmpl +22 -0
  155. package/dot_config/zsh/rc.d/30-options.zsh.tmpl +123 -0
  156. package/dot_config/zsh/rc.d/40-bell.zsh.tmpl +20 -0
  157. package/dot_config/zsh/rc.d/50-login-fortune.zsh.tmpl +9 -0
  158. package/dot_local/bin/executable_ai_core +130 -0
  159. package/dot_local/bin/executable_b64 +59 -0
  160. package/dot_local/bin/executable_dot +178 -0
  161. package/dot_local/bin/executable_dot_completion +55 -0
  162. package/dot_local/bin/executable_epoch +62 -0
  163. package/dot_local/bin/executable_extract +108 -0
  164. package/dot_local/bin/executable_git-ai-commit +160 -0
  165. package/dot_local/bin/executable_git-ai-diff +154 -0
  166. package/dot_local/bin/executable_hash +123 -0
  167. package/dot_local/bin/executable_hex +79 -0
  168. package/dot_local/bin/executable_ip +37 -0
  169. package/dot_local/bin/executable_jsonv +54 -0
  170. package/dot_local/bin/executable_jwt +78 -0
  171. package/dot_local/bin/executable_kill-port +59 -0
  172. package/dot_local/bin/executable_lorem +103 -0
  173. package/dot_local/bin/executable_regex +96 -0
  174. package/dot_local/bin/executable_tmux-sessionizer +187 -0
  175. package/dot_local/bin/executable_tour +137 -0
  176. package/dot_local/bin/executable_update +108 -0
  177. package/dot_local/bin/executable_uuid +57 -0
  178. package/dot_local/bin/executable_yamlv +39 -0
  179. package/dot_local/bin/executable_zig-install +89 -0
  180. package/dot_local/bin/voice_ops +7 -0
  181. package/dot_local/share/bash-completion/completions/dot +54 -0
  182. package/dot_local/share/zsh/completions/.keep +0 -0
  183. package/install.sh +255 -0
  184. package/package.json +52 -76
  185. package/scripts/ci/validate-ci-config.sh +222 -0
  186. package/scripts/demo/record.sh +41 -0
  187. package/scripts/diagnostics/benchmark.sh +201 -0
  188. package/scripts/diagnostics/doctor.sh +115 -0
  189. package/scripts/diagnostics/drift-dashboard.sh +26 -0
  190. package/scripts/diagnostics/health.sh +356 -0
  191. package/scripts/diagnostics/history-analysis.sh +77 -0
  192. package/scripts/diagnostics/security-score.sh +392 -0
  193. package/scripts/diagnostics/verify_state.sh +60 -0
  194. package/scripts/dot/commands/appearance.sh +63 -0
  195. package/scripts/dot/commands/core.sh +130 -0
  196. package/scripts/dot/commands/diagnostics.sh +100 -0
  197. package/scripts/dot/commands/meta.sh +117 -0
  198. package/scripts/dot/commands/restore.sh +209 -0
  199. package/scripts/dot/commands/secrets.sh +81 -0
  200. package/scripts/dot/commands/security.sh +73 -0
  201. package/scripts/dot/commands/tools.sh +228 -0
  202. package/scripts/dot/lib/utils.sh +72 -0
  203. package/scripts/fonts/install-nerd-fonts.sh +59 -0
  204. package/scripts/fonts/patch-fonts.sh +34 -0
  205. package/scripts/ops/chezmoi-apply.sh +42 -0
  206. package/scripts/ops/chezmoi-diff.sh +14 -0
  207. package/scripts/ops/chezmoi-remove.sh +43 -0
  208. package/scripts/ops/chezmoi-update.sh +16 -0
  209. package/scripts/ops/heal.sh +466 -0
  210. package/scripts/ops/health-check.sh +380 -0
  211. package/scripts/ops/rollback.sh +531 -0
  212. package/scripts/ops/teleport.sh +32 -0
  213. package/scripts/secrets/age-init.sh +69 -0
  214. package/scripts/secrets/create-secrets-file.sh +44 -0
  215. package/scripts/secrets/encrypt-ssh-key.sh +42 -0
  216. package/scripts/security/backup.sh +17 -0
  217. package/scripts/security/dns-doh.sh +29 -0
  218. package/scripts/security/encryption-check.sh +39 -0
  219. package/scripts/security/enforce-policies.sh +339 -0
  220. package/scripts/security/firewall.sh +34 -0
  221. package/scripts/security/lock-configs.sh +57 -0
  222. package/scripts/security/lock-screen.sh +33 -0
  223. package/scripts/security/manage-secrets.sh +415 -0
  224. package/scripts/security/telemetry-kill.sh +28 -0
  225. package/scripts/security/usb-safety.sh +29 -0
  226. package/scripts/tests/README.md +241 -0
  227. package/scripts/tests/benchmark.sh +91 -0
  228. package/scripts/tests/framework/assertions.sh +283 -0
  229. package/scripts/tests/framework/mocks.sh +201 -0
  230. package/scripts/tests/framework/test_runner.sh +189 -0
  231. package/scripts/tests/integration/test_install.sh +237 -0
  232. package/scripts/tests/performance/benchmark_runner.sh +156 -0
  233. package/scripts/tests/performance/regression_check.sh +73 -0
  234. package/scripts/tests/performance/stress_test.sh +65 -0
  235. package/scripts/tests/test-aliases.sh +25 -0
  236. package/scripts/tests/test-docker.sh +48 -0
  237. package/scripts/tests/unit/test_ai_aliases.sh +158 -0
  238. package/scripts/tests/unit/test_ai_cli_checks.sh +47 -0
  239. package/scripts/tests/unit/test_backup.sh +227 -0
  240. package/scripts/tests/unit/test_case_functions.sh +238 -0
  241. package/scripts/tests/unit/test_cd_aliases.sh +367 -0
  242. package/scripts/tests/unit/test_dot_cli.sh +217 -0
  243. package/scripts/tests/unit/test_encode64.sh +67 -0
  244. package/scripts/tests/unit/test_environment.sh +78 -0
  245. package/scripts/tests/unit/test_extract.sh +163 -0
  246. package/scripts/tests/unit/test_framework_edge_cases.sh +113 -0
  247. package/scripts/tests/unit/test_genpass.sh +298 -0
  248. package/scripts/tests/unit/test_install_edge_cases.sh +167 -0
  249. package/scripts/tests/unit/test_installers.sh +172 -0
  250. package/scripts/tests/unit/test_keygen.sh +68 -0
  251. package/scripts/tests/unit/test_logging.sh +96 -0
  252. package/scripts/tests/unit/test_os_detection_comprehensive.sh +388 -0
  253. package/scripts/tests/unit/test_package_managers_comprehensive.sh +321 -0
  254. package/scripts/tests/unit/test_prependpath.sh +66 -0
  255. package/scripts/tests/unit/test_prependpath_refactored.sh +89 -0
  256. package/scripts/tests/unit/test_rd.sh +230 -0
  257. package/scripts/tests/unit/test_security_fixes.sh +130 -0
  258. package/scripts/tests/unit/test_security_scripts.sh +87 -0
  259. package/scripts/tests/unit/test_template_validation.sh +238 -0
  260. package/scripts/tests/unit/test_utility_functions.sh +144 -0
  261. package/scripts/tests/unit/test_wave1_alias_split.sh +132 -0
  262. package/scripts/tests/unit/test_wave1_ci_pinning.sh +61 -0
  263. package/scripts/tests/unit/test_wave1_gitleaks_config.sh +52 -0
  264. package/scripts/tests/unit/test_wave1_heal_fixes.sh +97 -0
  265. package/scripts/tests/unit/test_wave1_install_gpg.sh +35 -0
  266. package/scripts/tests/unit/test_wave1_zshenv_path.sh +89 -0
  267. package/scripts/tests/unit/test_wave1_zshrc_lazy_hook.sh +115 -0
  268. package/scripts/tests/unit/test_wave2_dot_new_guard.sh +75 -0
  269. package/scripts/tests/unit/test_zipf.sh +76 -0
  270. package/scripts/theme/apply-gnome-theme.sh +297 -0
  271. package/scripts/theme/install-boot-logo.sh +61 -0
  272. package/scripts/theme/install-catppuccin-themes.sh +346 -0
  273. package/scripts/theme/install-cursors.sh +24 -0
  274. package/scripts/theme/install-file-icons.sh +25 -0
  275. package/scripts/theme/install-grub-theme.sh +51 -0
  276. package/scripts/theme/install-lock-icon.sh +29 -0
  277. package/scripts/theme/switch.sh +250 -0
  278. package/scripts/theme/wallpaper-rotate.sh +82 -0
  279. package/scripts/theme/wallpaper-sync.sh +42 -0
  280. package/scripts/tools/cmatrix.sh +20 -0
  281. package/scripts/tools/detect-collisions.py +84 -0
  282. package/scripts/tools/emoji-picker.sh +45 -0
  283. package/scripts/tools/figlet-banner.sh +17 -0
  284. package/scripts/tools/log-rotate.sh +29 -0
  285. package/scripts/tools/lolcat-wrap.sh +18 -0
  286. package/scripts/tools/pipes.sh +47 -0
  287. package/scripts/tuning/linux.sh +175 -0
  288. package/scripts/tuning/macos.sh +46 -0
  289. package/templates/projects/go/README.md +7 -0
  290. package/templates/projects/go/cmd/__PROJECT_NAME__/main.go +7 -0
  291. package/templates/projects/go/go.mod +3 -0
  292. package/templates/projects/molecule/README.md +7 -0
  293. package/templates/projects/molecule/converge.yml +7 -0
  294. package/templates/projects/molecule/molecule.yml +16 -0
  295. package/templates/projects/node/README.md +7 -0
  296. package/templates/projects/node/package.json +10 -0
  297. package/templates/projects/node/src/index.js +2 -0
  298. package/templates/projects/packer/README.md +15 -0
  299. package/templates/projects/packer/main.pkr.hcl +15 -0
  300. package/templates/projects/python/README.md +7 -0
  301. package/templates/projects/python/pyproject.toml +25 -0
  302. package/templates/projects/python/src/__PROJECT_NAME__/__init__.py +1 -0
  303. package/templates/projects/python/tests/test_basic.py +2 -0
  304. package/dist/Makefile +0 -140
  305. package/dist/bin/backup.d.ts +0 -3
  306. package/dist/bin/backup.d.ts.map +0 -1
  307. package/dist/bin/backup.js +0 -4
  308. package/dist/bin/backup.js.map +0 -1
  309. package/dist/bin/constants.d.ts +0 -7
  310. package/dist/bin/constants.d.ts.map +0 -1
  311. package/dist/bin/constants.js +0 -2
  312. package/dist/bin/constants.js.map +0 -1
  313. package/dist/bin/copy.d.ts +0 -3
  314. package/dist/bin/copy.d.ts.map +0 -1
  315. package/dist/bin/copy.js +0 -3
  316. package/dist/bin/copy.js.map +0 -1
  317. package/dist/bin/dotfiles.d.ts +0 -3
  318. package/dist/bin/dotfiles.d.ts.map +0 -1
  319. package/dist/bin/dotfiles.js +0 -2
  320. package/dist/bin/dotfiles.js.map +0 -1
  321. package/dist/bin/download.d.ts +0 -3
  322. package/dist/bin/download.d.ts.map +0 -1
  323. package/dist/bin/download.js +0 -2
  324. package/dist/bin/download.js.map +0 -1
  325. package/dist/bin/index.d.ts +0 -2
  326. package/dist/bin/index.d.ts.map +0 -1
  327. package/dist/bin/index.js +0 -1
  328. package/dist/bin/index.js.map +0 -1
  329. package/dist/bin/transfer.d.ts +0 -3
  330. package/dist/bin/transfer.d.ts.map +0 -1
  331. package/dist/bin/transfer.js +0 -4
  332. package/dist/bin/transfer.js.map +0 -1
  333. package/dist/bin/unpack.d.ts +0 -3
  334. package/dist/bin/unpack.d.ts.map +0 -1
  335. package/dist/bin/unpack.js +0 -3
  336. package/dist/bin/unpack.js.map +0 -1
  337. package/dist/filesizes.txt +0 -382
  338. package/dist/lib/README.md +0 -86
  339. package/dist/lib/aliases/README.md +0 -57
  340. package/dist/lib/aliases/archives/README.md +0 -145
  341. package/dist/lib/aliases/archives/archives.aliases.sh +0 -114
  342. package/dist/lib/aliases/cd/README.md +0 -146
  343. package/dist/lib/aliases/cd/cd.aliases.sh +0 -51
  344. package/dist/lib/aliases/chmod/README.md +0 -160
  345. package/dist/lib/aliases/chmod/chmod.aliases.sh +0 -107
  346. package/dist/lib/aliases/clear/README.md +0 -37
  347. package/dist/lib/aliases/clear/clear.aliases.sh +0 -71
  348. package/dist/lib/aliases/configuration/README.md +0 -39
  349. package/dist/lib/aliases/configuration/configuration.aliases.sh +0 -70
  350. package/dist/lib/aliases/default/README.md +0 -40
  351. package/dist/lib/aliases/default/default.aliases.sh +0 -139
  352. package/dist/lib/aliases/dig/README.md +0 -37
  353. package/dist/lib/aliases/dig/dig.aliases.sh +0 -43
  354. package/dist/lib/aliases/disk-usage/README.md +0 -36
  355. package/dist/lib/aliases/disk-usage/du.aliases.sh +0 -84
  356. package/dist/lib/aliases/editor/README.md +0 -53
  357. package/dist/lib/aliases/editor/editor.aliases.sh +0 -26
  358. package/dist/lib/aliases/find/README.md +0 -46
  359. package/dist/lib/aliases/find/find.aliases.sh +0 -60
  360. package/dist/lib/aliases/gcloud/README.md +0 -63
  361. package/dist/lib/aliases/gcloud/gcloud.aliases.sh +0 -335
  362. package/dist/lib/aliases/git/README.md +0 -153
  363. package/dist/lib/aliases/git/git.aliases.sh +0 -544
  364. package/dist/lib/aliases/gnu/README.md +0 -89
  365. package/dist/lib/aliases/gnu/gnucoreutils-aliases.sh +0 -150
  366. package/dist/lib/aliases/heroku/README.md +0 -430
  367. package/dist/lib/aliases/heroku/heroku.aliases.sh +0 -1053
  368. package/dist/lib/aliases/interactive/README.md +0 -55
  369. package/dist/lib/aliases/interactive/interactive.aliases.sh +0 -50
  370. package/dist/lib/aliases/list/README.md +0 -131
  371. package/dist/lib/aliases/list/list.aliases.sh +0 -132
  372. package/dist/lib/aliases/macOS/README.md +0 -42
  373. package/dist/lib/aliases/macOS/macos.aliases.sh +0 -65
  374. package/dist/lib/aliases/make/README.md +0 -32
  375. package/dist/lib/aliases/make/make.aliases.sh +0 -35
  376. package/dist/lib/aliases/mkdir/README.md +0 -30
  377. package/dist/lib/aliases/mkdir/mkdir.aliases.sh +0 -29
  378. package/dist/lib/aliases/npm/README.md +0 -41
  379. package/dist/lib/aliases/npm/npm.aliases.sh +0 -61
  380. package/dist/lib/aliases/permission/README.md +0 -47
  381. package/dist/lib/aliases/permission/permission.aliases.sh +0 -73
  382. package/dist/lib/aliases/pnpm/README.md +0 -53
  383. package/dist/lib/aliases/pnpm/pnpm.aliases.sh +0 -76
  384. package/dist/lib/aliases/ps/README.md +0 -29
  385. package/dist/lib/aliases/ps/ps.aliases.sh +0 -20
  386. package/dist/lib/aliases/python/python.aliases.sh +0 -141
  387. package/dist/lib/aliases/rsync/README.md +0 -25
  388. package/dist/lib/aliases/rsync/rsync.aliases.sh +0 -17
  389. package/dist/lib/aliases/rust/README.md +0 -182
  390. package/dist/lib/aliases/rust/rust.aliases.sh +0 -119
  391. package/dist/lib/aliases/subversion/README.md +0 -66
  392. package/dist/lib/aliases/subversion/subversion.aliases.sh +0 -47
  393. package/dist/lib/aliases/sudo/README.md +0 -27
  394. package/dist/lib/aliases/sudo/sudo.aliases.sh +0 -20
  395. package/dist/lib/aliases/tmux/README.md +0 -31
  396. package/dist/lib/aliases/tmux/tmux.aliases.sh +0 -36
  397. package/dist/lib/aliases/update/README.md +0 -38
  398. package/dist/lib/aliases/update/update.aliases.sh +0 -310
  399. package/dist/lib/aliases/uuid/README.md +0 -24
  400. package/dist/lib/aliases/uuid/uuid.aliases.sh +0 -19
  401. package/dist/lib/aliases/wget/README.md +0 -27
  402. package/dist/lib/aliases/wget/wget.aliases.sh +0 -22
  403. package/dist/lib/aliases.sh +0 -50
  404. package/dist/lib/configurations/README.md +0 -18
  405. package/dist/lib/configurations/bash/bashrc +0 -167
  406. package/dist/lib/configurations/curl/cacert.pem +0 -3460
  407. package/dist/lib/configurations/curl/curlrc +0 -53
  408. package/dist/lib/configurations/default/color.sh +0 -24
  409. package/dist/lib/configurations/default/constants.sh +0 -43
  410. package/dist/lib/configurations/default/editor.sh +0 -18
  411. package/dist/lib/configurations/default/prompt.sh +0 -48
  412. package/dist/lib/configurations/input/inputrc +0 -23
  413. package/dist/lib/configurations/jshint/jshintrc +0 -37
  414. package/dist/lib/configurations/nano/nanorc +0 -35
  415. package/dist/lib/configurations/profile/profile +0 -37
  416. package/dist/lib/configurations/prompt/prompt.sh +0 -81
  417. package/dist/lib/configurations/tmux/default +0 -18
  418. package/dist/lib/configurations/tmux/display +0 -30
  419. package/dist/lib/configurations/tmux/linux +0 -18
  420. package/dist/lib/configurations/tmux/navigation +0 -30
  421. package/dist/lib/configurations/tmux/panes +0 -10
  422. package/dist/lib/configurations/tmux/theme +0 -29
  423. package/dist/lib/configurations/tmux/tmux +0 -21
  424. package/dist/lib/configurations/vim/vimrc +0 -193
  425. package/dist/lib/configurations/wget/wgetrc +0 -40
  426. package/dist/lib/configurations/zsh/zshrc +0 -50
  427. package/dist/lib/configurations.sh +0 -45
  428. package/dist/lib/functions/README.md +0 -92
  429. package/dist/lib/functions/apihealth.sh +0 -277
  430. package/dist/lib/functions/apilatency.sh +0 -157
  431. package/dist/lib/functions/apiload.sh +0 -165
  432. package/dist/lib/functions/backup.sh +0 -143
  433. package/dist/lib/functions/cdls.sh +0 -60
  434. package/dist/lib/functions/curlheader.sh +0 -78
  435. package/dist/lib/functions/curlstatus.sh +0 -74
  436. package/dist/lib/functions/curltime.sh +0 -75
  437. package/dist/lib/functions/encode64.sh +0 -107
  438. package/dist/lib/functions/environment.sh +0 -78
  439. package/dist/lib/functions/extract.sh +0 -86
  440. package/dist/lib/functions/freespace.sh +0 -67
  441. package/dist/lib/functions/genpwd.sh +0 -105
  442. package/dist/lib/functions/goto.sh +0 -67
  443. package/dist/lib/functions/hexdump.sh +0 -96
  444. package/dist/lib/functions/hiddenfiles.sh +0 -77
  445. package/dist/lib/functions/hostinfo.sh +0 -98
  446. package/dist/lib/functions/hstats.sh +0 -75
  447. package/dist/lib/functions/httpdebug.sh +0 -113
  448. package/dist/lib/functions/kebabcase.sh +0 -61
  449. package/dist/lib/functions/keygen.sh +0 -194
  450. package/dist/lib/functions/last.sh +0 -112
  451. package/dist/lib/functions/logout.sh +0 -120
  452. package/dist/lib/functions/lowercase.sh +0 -61
  453. package/dist/lib/functions/matrix.sh +0 -216
  454. package/dist/lib/functions/mount_read_only.sh +0 -11
  455. package/dist/lib/functions/myproc.sh +0 -9
  456. package/dist/lib/functions/prependpath.sh +0 -21
  457. package/dist/lib/functions/ql.sh +0 -9
  458. package/dist/lib/functions/rd.sh +0 -17
  459. package/dist/lib/functions/remove_disk.sh +0 -11
  460. package/dist/lib/functions/ren.sh +0 -73
  461. package/dist/lib/functions/sentencecase.sh +0 -63
  462. package/dist/lib/functions/showhiddenfiles.sh +0 -14
  463. package/dist/lib/functions/size.sh +0 -16
  464. package/dist/lib/functions/snakecase.sh +0 -61
  465. package/dist/lib/functions/stopwatch.sh +0 -15
  466. package/dist/lib/functions/sysinfo.sh +0 -145
  467. package/dist/lib/functions/titlecase.sh +0 -65
  468. package/dist/lib/functions/uppercase.sh +0 -61
  469. package/dist/lib/functions/view-source.sh +0 -9
  470. package/dist/lib/functions/vscode.sh +0 -32
  471. package/dist/lib/functions/whoisport.sh +0 -14
  472. package/dist/lib/functions/zipf.sh +0 -16
  473. package/dist/lib/functions.sh +0 -46
  474. package/dist/lib/history.sh +0 -90
  475. package/dist/lib/paths/README.md +0 -52
  476. package/dist/lib/paths/custom.paths.sh +0 -40
  477. package/dist/lib/paths/default.paths.sh +0 -37
  478. package/dist/lib/paths.sh +0 -46
  479. package/dist/scripts/backup.sh +0 -95
  480. package/dist/scripts/banner.sh +0 -20
  481. package/dist/scripts/build.sh +0 -41
  482. package/dist/scripts/clean.sh +0 -31
  483. package/dist/scripts/compile.sh +0 -54
  484. package/dist/scripts/copy.sh +0 -108
  485. package/dist/scripts/dotfiles.sh +0 -63
  486. package/dist/scripts/download.sh +0 -35
  487. package/dist/scripts/help.sh +0 -57
  488. package/dist/scripts/ssh.sh +0 -55
  489. package/dist/scripts/unpack.sh +0 -28
  490. /package/{dist/lib/configurations → dot_config}/gem/gemrc +0 -0
@@ -0,0 +1,228 @@
1
+ #!/usr/bin/env bash
2
+ # Dotfiles CLI - Tools Commands
3
+ # tools, new, packages, log-rotate
4
+
5
+ set -euo pipefail
6
+
7
+ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
8
+ # shellcheck source=../lib/utils.sh
9
+ source "$SCRIPT_DIR/../lib/utils.sh"
10
+
11
+ show_system_package_managers() {
12
+ if has_command brew; then
13
+ local brew_version brew_formulae brew_casks
14
+ brew_version=$(brew --version | head -1)
15
+ brew_formulae=$(brew list --formula 2>/dev/null | wc -l | tr -d ' ')
16
+ brew_casks=$(brew list --cask 2>/dev/null | wc -l | tr -d ' ')
17
+ echo " Homebrew: $brew_version"
18
+ echo " Formulae: $brew_formulae"
19
+ echo " Casks: $brew_casks"
20
+ fi
21
+ if has_command apt; then
22
+ local apt_version apt_packages
23
+ apt_version=$(apt --version 2>/dev/null | head -1 || echo 'installed')
24
+ apt_packages=$(dpkg -l 2>/dev/null | grep -c '^ii' || echo 'N/A')
25
+ echo " APT: $apt_version"
26
+ echo " Packages: $apt_packages"
27
+ fi
28
+ if has_command dnf; then
29
+ echo " DNF: $(dnf --version 2>/dev/null | head -1 || echo 'installed')"
30
+ fi
31
+ if has_command pacman; then
32
+ local pacman_packages
33
+ pacman_packages=$(pacman -Q 2>/dev/null | wc -l | tr -d ' ')
34
+ echo " Pacman: $(pacman --version | head -1)"
35
+ echo " Packages: $pacman_packages"
36
+ fi
37
+ if has_command nix; then
38
+ echo " Nix: $(nix --version)"
39
+ fi
40
+ }
41
+
42
+ show_language_package_managers() {
43
+ if has_command npm; then
44
+ local npm_globals
45
+ npm_globals=$(npm list -g --depth=0 2>/dev/null | grep -c '├──\|└──' || echo 'N/A')
46
+ echo " npm: $(npm --version)"
47
+ echo " Global packages: $npm_globals"
48
+ fi
49
+ if has_command pnpm; then
50
+ echo " pnpm: $(pnpm --version)"
51
+ fi
52
+ if has_command bun; then
53
+ echo " Bun: $(bun --version)"
54
+ fi
55
+ if has_command cargo; then
56
+ local cargo_installed
57
+ cargo_installed=$(cargo install --list 2>/dev/null | grep -c ':$' || echo 'N/A')
58
+ echo " Cargo: $(cargo --version | cut -d' ' -f2)"
59
+ echo " Installed: $cargo_installed"
60
+ fi
61
+ if has_command pip3; then
62
+ echo " pip: $(pip3 --version | cut -d' ' -f2)"
63
+ fi
64
+ if has_command pipx; then
65
+ local pipx_installed
66
+ pipx_installed=$(pipx list --short 2>/dev/null | wc -l | tr -d ' ')
67
+ echo " pipx: $(pipx --version)"
68
+ echo " Installed: $pipx_installed"
69
+ fi
70
+ if has_command gem; then
71
+ echo " RubyGems: $(gem --version)"
72
+ fi
73
+ if has_command go; then
74
+ echo " Go: $(go version | cut -d' ' -f3)"
75
+ fi
76
+ }
77
+
78
+ cmd_tools() {
79
+ local src_dir subcommand
80
+ src_dir="$(resolve_source_dir)"
81
+ subcommand="${1:-}"
82
+
83
+ if [ "$subcommand" = "install" ]; then
84
+ if ! has_command nix; then
85
+ echo "Nix is not installed."
86
+ echo ""
87
+ echo "To install Nix, run:"
88
+ echo " curl -L https://nixos.org/nix/install | sh"
89
+ echo ""
90
+ echo "Or use Homebrew/apt for individual tools."
91
+ exit 1
92
+ fi
93
+ shift
94
+ if [ -n "$src_dir" ] && [ -f "$src_dir/nix/flake.nix" ]; then
95
+ echo "Entering Nix development shell..."
96
+ exec nix develop "$src_dir/nix" "$@"
97
+ else
98
+ echo "Nix flake not found in source directory."
99
+ exit 1
100
+ fi
101
+ elif [ -n "$src_dir" ] && [ -f "$src_dir/docs/TOOLS.md" ]; then
102
+ exec cat "$src_dir/docs/TOOLS.md"
103
+ elif [ -n "$src_dir" ] && [ -f "$src_dir/docs/UTILS.md" ]; then
104
+ exec cat "$src_dir/docs/UTILS.md"
105
+ else
106
+ echo "Dot Tools:"
107
+ echo ""
108
+ echo "Usage: dot tools [command]"
109
+ echo ""
110
+ echo "Commands:"
111
+ echo " (none) Show tools documentation"
112
+ echo " install Enter Nix development shell with all tools"
113
+ echo ""
114
+ echo "Quick Reference:"
115
+ echo " dot sync - Apply dotfiles"
116
+ echo " dot update - Pull latest changes and apply"
117
+ echo " dot doctor - Run health checks"
118
+ echo " dot keys - Show keybindings catalog"
119
+ echo " dot learn - Interactive tour"
120
+ fi
121
+ }
122
+
123
+ cmd_new() {
124
+ local template_lang="${1:-}"
125
+ local project_name="${2:-}"
126
+
127
+ if [ -z "$template_lang" ] || [ -z "$project_name" ]; then
128
+ echo "Usage: dot new <lang> <name>"
129
+ echo "Available templates: python, go, node, packer, molecule"
130
+ exit 1
131
+ fi
132
+
133
+ # Validate inputs to prevent path traversal
134
+ if [[ ! "$template_lang" =~ ^[a-zA-Z0-9_-]+$ ]]; then
135
+ die "Invalid template name: $template_lang"
136
+ fi
137
+ if [[ ! "$project_name" =~ ^[a-zA-Z0-9_.-]+$ ]]; then
138
+ die "Invalid project name: $project_name"
139
+ fi
140
+
141
+ local src_dir
142
+ src_dir="$(require_source_dir)"
143
+ local template_dir="$src_dir/templates/projects/$template_lang"
144
+
145
+ if [ ! -d "$template_dir" ]; then
146
+ echo "Unknown template: $template_lang"
147
+ echo "Available templates: python, go, node, packer, molecule"
148
+ exit 1
149
+ fi
150
+
151
+ # Pre-flight: verify Python is available before creating any files
152
+ local python_cmd=""
153
+ if has_command python3; then
154
+ python_cmd="python3"
155
+ elif has_command python; then
156
+ python_cmd="python"
157
+ else
158
+ die "python3 is required to render templates."
159
+ fi
160
+
161
+ local dest="$PWD/$project_name"
162
+ if [ -e "$dest" ]; then
163
+ die "Destination exists: $dest"
164
+ fi
165
+
166
+ mkdir -p "$dest"
167
+ cp -R "$template_dir/." "$dest"
168
+
169
+ # Rename directories
170
+ find "$dest" -depth -name "__PROJECT_NAME__" -print0 | while IFS= read -r -d '' path; do
171
+ local parent
172
+ parent="$(dirname "$path")"
173
+ mv "$path" "$parent/$project_name"
174
+ done
175
+
176
+ # Render template placeholders
177
+ find "$dest" -type f -print0 | while IFS= read -r -d '' file; do
178
+ $python_cmd - "$file" "$project_name" <<'PY'
179
+ import sys
180
+ path = sys.argv[1]
181
+ name = sys.argv[2]
182
+ with open(path, "r", encoding="utf-8") as f:
183
+ data = f.read()
184
+ data = data.replace("__PROJECT_NAME__", name)
185
+ with open(path, "w", encoding="utf-8") as f:
186
+ f.write(data)
187
+ PY
188
+ done
189
+
190
+ echo "Created $template_lang project at $dest"
191
+ }
192
+
193
+ cmd_packages() {
194
+ echo "Package Managers:"
195
+ echo ""
196
+ show_system_package_managers
197
+ echo ""
198
+ echo "Language Package Managers:"
199
+ show_language_package_managers
200
+ }
201
+
202
+ cmd_log_rotate() {
203
+ run_script "scripts/tools/log-rotate.sh" "Log rotation script" "$@"
204
+ }
205
+
206
+ # Dispatch
207
+ case "${1:-}" in
208
+ tools)
209
+ shift
210
+ cmd_tools "$@"
211
+ ;;
212
+ new)
213
+ shift
214
+ cmd_new "$@"
215
+ ;;
216
+ packages)
217
+ shift
218
+ cmd_packages "$@"
219
+ ;;
220
+ log-rotate)
221
+ shift
222
+ cmd_log_rotate "$@"
223
+ ;;
224
+ *)
225
+ echo "Unknown tools command: ${1:-}" >&2
226
+ exit 1
227
+ ;;
228
+ esac
@@ -0,0 +1,72 @@
1
+ #!/usr/bin/env bash
2
+ # Dotfiles CLI Utilities
3
+ # Shared functions for dot command modules
4
+
5
+ # Resolve the dotfiles source directory
6
+ resolve_source_dir() {
7
+ if [ -n "${CHEZMOI_SOURCE_DIR:-}" ] && [ -d "$CHEZMOI_SOURCE_DIR" ]; then
8
+ echo "$CHEZMOI_SOURCE_DIR"
9
+ return
10
+ fi
11
+ if [ -d "$HOME/.dotfiles" ]; then
12
+ echo "$HOME/.dotfiles"
13
+ return
14
+ fi
15
+ if [ -d "$HOME/.local/share/chezmoi" ]; then
16
+ echo "$HOME/.local/share/chezmoi"
17
+ return
18
+ fi
19
+ echo ""
20
+ }
21
+
22
+ # Generic dispatcher: resolve source dir, find script, exec it.
23
+ # Usage: run_script <relative-script-path> <not-found-label> [args...]
24
+ run_script() {
25
+ local script_rel="$1"
26
+ local label="$2"
27
+ shift 2
28
+ local src_dir
29
+ src_dir="$(resolve_source_dir)"
30
+ if [ -z "$src_dir" ]; then
31
+ echo "Dotfiles source not found." >&2
32
+ exit 1
33
+ fi
34
+ if [ -f "$src_dir/$script_rel" ]; then
35
+ exec bash "$src_dir/$script_rel" "$@"
36
+ else
37
+ echo "$label not found." >&2
38
+ exit 1
39
+ fi
40
+ }
41
+
42
+ # Require source directory or exit
43
+ require_source_dir() {
44
+ local src_dir
45
+ src_dir="$(resolve_source_dir)"
46
+ if [ -z "$src_dir" ]; then
47
+ echo "Dotfiles source not found." >&2
48
+ exit 1
49
+ fi
50
+ echo "$src_dir"
51
+ }
52
+
53
+ # Check if a command exists
54
+ has_command() {
55
+ command -v "$1" >/dev/null 2>&1
56
+ }
57
+
58
+ # Print error message and exit
59
+ die() {
60
+ echo "Error: $1" >&2
61
+ exit "${2:-1}"
62
+ }
63
+
64
+ # Print warning message
65
+ warn() {
66
+ echo "Warning: $1" >&2
67
+ }
68
+
69
+ # Print info message
70
+ info() {
71
+ echo "$1"
72
+ }
@@ -0,0 +1,59 @@
1
+ #!/bin/sh
2
+ set -e
3
+
4
+ DEFAULT_FONTS="JetBrainsMono FiraCode Iosevka"
5
+ FONT_LIST="${*:-$DEFAULT_FONTS}"
6
+
7
+ install_linux() {
8
+ font_name="$1"
9
+ target_dir="$HOME/.local/share/fonts/${font_name}NerdFont"
10
+ mkdir -p "$target_dir"
11
+ tmp_dir="$(mktemp -d)"
12
+ url="https://github.com/ryanoasis/nerd-fonts/releases/latest/download/${font_name}.zip"
13
+ echo "Downloading $font_name Nerd Font..."
14
+ curl -fL --connect-timeout 10 --max-time 300 "$url" -o "$tmp_dir/${font_name}.zip"
15
+ if ! unzip -o "$tmp_dir/${font_name}.zip" -d "$target_dir" >/dev/null; then
16
+ echo "Error: Failed to unzip ${font_name}.zip" >&2
17
+ rm -rf "$tmp_dir"
18
+ return 1
19
+ fi
20
+ rm -rf "$tmp_dir"
21
+ if command -v fc-cache >/dev/null; then
22
+ fc-cache -f "$target_dir"
23
+ fi
24
+ echo "Installed to: $target_dir"
25
+ }
26
+
27
+ install_macos() {
28
+ font_name="$1"
29
+ if command -v brew >/dev/null; then
30
+ brew tap homebrew/cask-fonts >/dev/null 2>&1 || true
31
+ cask_name="$(printf "%s" "$font_name" | tr '[:upper:]' '[:lower:]')"
32
+ case "$cask_name" in
33
+ jetbrainsmono) cask_name="jetbrains-mono" ;;
34
+ firacode) cask_name="fira-code" ;;
35
+ iosevka) cask_name="iosevka" ;;
36
+ esac
37
+ brew install --cask "font-${cask_name}-nerd-font" || true
38
+ else
39
+ echo "Homebrew not found. Install font manually."
40
+ exit 1
41
+ fi
42
+ }
43
+
44
+ case "$(uname -s)" in
45
+ Linux)
46
+ for font in $FONT_LIST; do
47
+ install_linux "$font"
48
+ done
49
+ ;;
50
+ Darwin)
51
+ for font in $FONT_LIST; do
52
+ install_macos "$font"
53
+ done
54
+ ;;
55
+ *)
56
+ echo "Unsupported OS for font install."
57
+ exit 1
58
+ ;;
59
+ esac
@@ -0,0 +1,34 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+
4
+ if [[ $# -lt 1 ]]; then
5
+ echo "Usage: patch-fonts.sh <font-file> [output-dir]" >&2
6
+ exit 1
7
+ fi
8
+
9
+ font_file="$1"
10
+ out_dir="${2:-$PWD/patched-fonts}"
11
+
12
+ if [[ ! -f "$font_file" ]]; then
13
+ echo "Font not found: $font_file" >&2
14
+ exit 1
15
+ fi
16
+
17
+ if ! command -v fontforge >/dev/null; then
18
+ echo "fontforge not found. Install it first (brew install fontforge / apt install fontforge)." >&2
19
+ exit 1
20
+ fi
21
+
22
+ patcher="${NERD_FONTS_PATCHER:-$HOME/.local/share/nerd-fonts/font-patcher}"
23
+
24
+ if [[ ! -x "$patcher" ]]; then
25
+ echo "Nerd Fonts patcher not found: $patcher" >&2
26
+ echo "Set NERD_FONTS_PATCHER to the font-patcher path or clone nerd-fonts." >&2
27
+ exit 1
28
+ fi
29
+
30
+ mkdir -p "$out_dir"
31
+
32
+ fontforge -script "$patcher" --complete --outputdir "$out_dir" "$font_file"
33
+
34
+ echo "Patched font written to: $out_dir"
@@ -0,0 +1,42 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+
4
+ args=()
5
+ if [[ -n "${DOTFILES_CHEZMOI_APPLY_FLAGS:-}" ]]; then
6
+ # Safely parse space-separated flags into array
7
+ read -ra flag_array <<<"$DOTFILES_CHEZMOI_APPLY_FLAGS"
8
+ args+=("${flag_array[@]}")
9
+ fi
10
+
11
+ if [[ "${DOTFILES_CHEZMOI_VERBOSE:-0}" = "1" ]]; then
12
+ args+=("--verbose")
13
+ fi
14
+
15
+ if [[ "${DOTFILES_CHEZMOI_KEEP_GOING:-0}" = "1" ]]; then
16
+ args+=("--keep-going")
17
+ fi
18
+
19
+ echo "Applying dotfiles..."
20
+ chezmoi apply "${args[@]}"
21
+
22
+ check_ai_cli() {
23
+ local name="$1"
24
+ local label="$2"
25
+ if ! command -v "$name" >/dev/null 2>&1; then
26
+ echo "NOT FOUND: $label"
27
+ fi
28
+ }
29
+
30
+ echo ""
31
+ echo "AI provider CLI checks (optional):"
32
+ check_ai_cli "claude" "claude (recommended — install to enable this provider)"
33
+ check_ai_cli "gemini" "gemini (optional — install to enable this provider)"
34
+ check_ai_cli "sgpt" "sgpt (optional — install to enable this provider)"
35
+ check_ai_cli "ollama" "ollama (optional — install to enable this provider)"
36
+ check_ai_cli "opencode" "opencode (optional — install to enable this provider)"
37
+ check_ai_cli "aider" "aider (optional — AI pair programming)"
38
+
39
+ if [[ "${DOTFILES_CHEZMOI_STATUS:-1}" = "1" ]]; then
40
+ printf "\nStatus:\n"
41
+ chezmoi status || true
42
+ fi
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+
4
+ excludes=(scripts)
5
+ if [[ -n "${DOTFILES_CHEZMOI_DIFF_EXCLUDES:-}" ]]; then
6
+ IFS=',' read -r -a excludes <<<"${DOTFILES_CHEZMOI_DIFF_EXCLUDES}"
7
+ fi
8
+
9
+ args=()
10
+ for ex in "${excludes[@]}"; do
11
+ args+=("--exclude" "$ex")
12
+ done
13
+
14
+ chezmoi diff "${args[@]}" "$@"
@@ -0,0 +1,43 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+
4
+ if [[ $# -lt 1 ]]; then
5
+ echo "Usage: dot remove <path> [--source] [--dry-run]" >&2
6
+ exit 1
7
+ fi
8
+
9
+ remove_source=0
10
+ args=()
11
+ paths=()
12
+
13
+ for arg in "$@"; do
14
+ case "$arg" in
15
+ --source)
16
+ remove_source=1
17
+ ;;
18
+ --dry-run)
19
+ args+=("--dry-run")
20
+ ;;
21
+ *)
22
+ paths+=("$arg")
23
+ ;;
24
+ esac
25
+ done
26
+
27
+ if [[ ${#paths[@]} -eq 0 ]]; then
28
+ echo "No path provided." >&2
29
+ exit 1
30
+ fi
31
+
32
+ if [[ $remove_source -eq 0 ]]; then
33
+ args+=("--keep-source")
34
+ fi
35
+
36
+ printf "About to run: chezmoi remove %s %s\n" "${args[*]}" "${paths[*]}"
37
+ read -r -p "Proceed? [y/N] " confirm
38
+ if [[ "$confirm" != "y" && "$confirm" != "Y" ]]; then
39
+ echo "Aborted."
40
+ exit 1
41
+ fi
42
+
43
+ chezmoi remove "${args[@]}" "${paths[@]}"
@@ -0,0 +1,16 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+
4
+ args=()
5
+ if [[ -n "${DOTFILES_CHEZMOI_UPDATE_FLAGS:-}" ]]; then
6
+ # Safely parse space-separated flags into array
7
+ read -ra flag_array <<<"$DOTFILES_CHEZMOI_UPDATE_FLAGS"
8
+ args+=("${flag_array[@]}")
9
+ fi
10
+
11
+ if [[ "${DOTFILES_CHEZMOI_VERBOSE:-0}" = "1" ]]; then
12
+ args+=("--verbose")
13
+ fi
14
+
15
+ echo "Updating dotfiles..."
16
+ chezmoi update "${args[@]}"