@sebastienrousseau/dotfiles 0.2.481 → 0.2.499

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 (317) hide show
  1. package/docs/ARCHITECTURE.md +29 -196
  2. package/docs/COMPLIANCE.md +10 -10
  3. package/docs/COPYRIGHT +3 -4
  4. package/docs/OPERATIONS.md +38 -65
  5. package/docs/PLAN.md +3 -3
  6. package/docs/PR_DESCRIPTION.md +85 -84
  7. package/docs/ROADMAP.md +11 -11
  8. package/docs/ROADMAP_legacy.md +556 -0
  9. package/docs/SECURITY_CHECKLIST.md +1 -1
  10. package/docs/TASK.md +4 -4
  11. package/docs/WALKTHROUGH.md +33 -152
  12. package/package.json +17 -5
  13. package/scripts/backup.sh +142 -0
  14. package/scripts/banner.sh +20 -0
  15. package/scripts/benchmark.sh +20 -0
  16. package/scripts/build.sh +41 -0
  17. package/scripts/clean.sh +31 -0
  18. package/scripts/compile.sh +54 -0
  19. package/scripts/copy.sh +108 -0
  20. package/scripts/{tools/detect-collisions.py → detect-collisions.py} +1 -1
  21. package/scripts/doctor.sh +79 -0
  22. package/scripts/dotfiles.sh +63 -0
  23. package/scripts/download.sh +35 -0
  24. package/scripts/help.sh +57 -0
  25. package/scripts/lock-configs.sh +57 -0
  26. package/scripts/package.sh +46 -0
  27. package/scripts/ssh.sh +55 -0
  28. package/scripts/teleport.sh +23 -0
  29. package/scripts/{tests/test-aliases.sh → test-aliases.sh} +3 -3
  30. package/scripts/test_smoke.sh +88 -0
  31. package/scripts/unpack.sh +28 -0
  32. package/scripts/{diagnostics/verify_state.sh → verify_state.sh} +21 -21
  33. package/templates/projects/go/README.md +0 -4
  34. package/templates/projects/node/README.md +0 -4
  35. package/templates/projects/python/README.md +0 -4
  36. package/templates/projects/python/pyproject.toml +0 -15
  37. package/CHANGELOG.md +0 -285
  38. package/LICENSE +0 -1283
  39. package/README.md +0 -315
  40. package/docs/ALIASES.md +0 -128
  41. package/docs/FEATURES.md +0 -166
  42. package/docs/FONTS.md +0 -147
  43. package/docs/INSTALL.md +0 -119
  44. package/docs/KEYS.md +0 -40
  45. package/docs/KEY_ROTATION.md +0 -219
  46. package/docs/LEGACY_ROADMAP.md +0 -142
  47. package/docs/NEOVIM_IDE_GUIDE.md +0 -52
  48. package/docs/README.md +0 -269
  49. package/docs/REPO_AUDIT.md +0 -23
  50. package/docs/SCREENSHOTS.md +0 -116
  51. package/docs/SECRETS.md +0 -76
  52. package/docs/SECURITY.md +0 -30
  53. package/docs/TESTING.md +0 -190
  54. package/docs/TOOLS.md +0 -146
  55. package/docs/TROUBLESHOOTING.md +0 -112
  56. package/docs/UTILS.md +0 -105
  57. package/docs/WSL2_NIX_TROUBLESHOOTING.md +0 -723
  58. package/docs/adr/ADR-001-ci-cd-pipeline.md +0 -101
  59. package/docs/adr/ADR-002-shell-performance.md +0 -121
  60. package/docs/adr/ADR-003-security-first.md +0 -140
  61. package/docs/adr/ADR-004-cli-architecture.md +0 -157
  62. package/docs/adr/ADR-005-chezmoi-choice.md +0 -89
  63. package/docs/adr/ADR-006-shell-selection.md +0 -115
  64. package/docs/adr/README.md +0 -33
  65. package/docs/themes/README.md +0 -20
  66. package/dot_config/aider/aider.conf.yml +0 -32
  67. package/dot_config/alacritty/alacritty.toml.tmpl +0 -483
  68. package/dot_config/ansible/ansible.cfg.tmpl +0 -11
  69. package/dot_config/atuin/config.toml +0 -23
  70. package/dot_config/bat/config +0 -8
  71. package/dot_config/brave-flags.conf.tmpl +0 -7
  72. package/dot_config/btop/btop.conf +0 -16
  73. package/dot_config/btop/themes/tokyonight.theme +0 -34
  74. package/dot_config/bun/bunfig.toml.tmpl +0 -33
  75. package/dot_config/claude/mcp_servers.json +0 -49
  76. package/dot_config/clippy.toml +0 -55
  77. package/dot_config/containers/containers.conf +0 -14
  78. package/dot_config/curl/dot_curlrc +0 -18
  79. package/dot_config/dlv/config.yml +0 -39
  80. package/dot_config/docker/config.json.tmpl +0 -15
  81. package/dot_config/dotfiles/boot/README.md +0 -11
  82. package/dot_config/dotfiles/grub/README.md +0 -11
  83. package/dot_config/dotfiles/lock/README.md +0 -11
  84. package/dot_config/dotfiles/versions.env.tmpl +0 -19
  85. package/dot_config/duf/duf.conf +0 -6
  86. package/dot_config/duti/defaults.duti +0 -5
  87. package/dot_config/emoji/emoji.txt +0 -34
  88. package/dot_config/fastfetch/config.jsonc +0 -28
  89. package/dot_config/firefox/user.js +0 -8
  90. package/dot_config/flatpak/flatpak.list +0 -4
  91. package/dot_config/fontconfig/fonts.conf.tmpl +0 -44
  92. package/dot_config/gem/gemrc +0 -9
  93. package/dot_config/gh/config.yml +0 -12
  94. package/dot_config/ghostty/config.tmpl +0 -661
  95. package/dot_config/git/attributes +0 -12
  96. package/dot_config/git/config.tmpl +0 -77
  97. package/dot_config/git/ignore +0 -27
  98. package/dot_config/gnupg/gpg-agent.conf.tmpl +0 -11
  99. package/dot_config/go/aliases.sh +0 -61
  100. package/dot_config/go/env.sh +0 -24
  101. package/dot_config/go/golangci.yml +0 -118
  102. package/dot_config/go/gopls.json +0 -30
  103. package/dot_config/goose/config.yaml +0 -29
  104. package/dot_config/gtk-3.0/gtk.css.tmpl +0 -305
  105. package/dot_config/gtk-3.0/settings.ini.tmpl +0 -66
  106. package/dot_config/gtk-4.0/gtk.css.tmpl +0 -309
  107. package/dot_config/gtk-4.0/settings.ini.tmpl +0 -21
  108. package/dot_config/htop/htoprc +0 -20
  109. package/dot_config/ice/README.md +0 -13
  110. package/dot_config/inputrc +0 -2
  111. package/dot_config/ipython/profile_default/ipython_config.py.tmpl +0 -5
  112. package/dot_config/just/justfile +0 -104
  113. package/dot_config/k9s/config.yaml.tmpl +0 -65
  114. package/dot_config/k9s/skins/catppuccin-mocha.yaml +0 -116
  115. package/dot_config/karabiner/karabiner.json +0 -14
  116. package/dot_config/kitty/kitty.conf.tmpl +0 -517
  117. package/dot_config/lazydocker/config.yml +0 -186
  118. package/dot_config/lazygit/config.yml +0 -23
  119. package/dot_config/lsd/config.yaml +0 -19
  120. package/dot_config/mas/masapps.txt +0 -5
  121. package/dot_config/minikube/config.json +0 -13
  122. package/dot_config/mise/config.toml +0 -41
  123. package/dot_config/mongosh/mongoshrc.js +0 -67
  124. package/dot_config/mycli/myclirc +0 -67
  125. package/dot_config/nano/nanorc +0 -28
  126. package/dot_config/ncdu/config +0 -12
  127. package/dot_config/nvim/init.lua +0 -4
  128. package/dot_config/nvim/lazy-lock.json +0 -27
  129. package/dot_config/nvim/lua/config/autocmds.lua +0 -63
  130. package/dot_config/nvim/lua/config/keymaps.lua +0 -87
  131. package/dot_config/nvim/lua/config/lazy.lua +0 -34
  132. package/dot_config/nvim/lua/config/options.lua +0 -48
  133. package/dot_config/nvim/lua/plugins/coding.lua +0 -234
  134. package/dot_config/nvim/lua/plugins/dap.lua +0 -201
  135. package/dot_config/nvim/lua/plugins/editor.lua +0 -59
  136. package/dot_config/nvim/lua/plugins/git.lua +0 -9
  137. package/dot_config/nvim/lua/plugins/lsp.lua +0 -221
  138. package/dot_config/nvim/lua/plugins/markdown.lua +0 -17
  139. package/dot_config/nvim/lua/plugins/rust.lua +0 -33
  140. package/dot_config/nvim/lua/plugins/sessions.lua +0 -32
  141. package/dot_config/nvim/lua/plugins/ui.lua +0 -537
  142. package/dot_config/nvim/snippets/all.lua +0 -9
  143. package/dot_config/nvim/snippets/python.lua +0 -16
  144. package/dot_config/pip/pip.conf.tmpl +0 -32
  145. package/dot_config/pypoetry/config.toml.tmpl +0 -6
  146. package/dot_config/pyrightconfig.json.tmpl +0 -5
  147. package/dot_config/raycast/README.md +0 -13
  148. package/dot_config/redis/redisclirc +0 -41
  149. package/dot_config/shell/00-container-detect.sh +0 -53
  150. package/dot_config/shell/00-core-paths.sh.tmpl +0 -95
  151. package/dot_config/shell/05-core-safety.sh.tmpl +0 -13
  152. package/dot_config/shell/40-ls-colors.sh.tmpl +0 -31
  153. package/dot_config/shell/50-logic-functions.sh.tmpl +0 -10
  154. package/dot_config/shell/90-theme-switch.sh +0 -70
  155. package/dot_config/shell/90-ux-aliases.sh.tmpl +0 -35
  156. package/dot_config/shell/91-ux-aliases-lazy.sh.tmpl +0 -23
  157. package/dot_config/shell/Brewfile +0 -207
  158. package/dot_config/shell/Brewfile.cask +0 -92
  159. package/dot_config/shell/Brewfile.cli +0 -119
  160. package/dot_config/shell/README.md +0 -267
  161. package/dot_config/shell/custom/context_suggest.zsh +0 -68
  162. package/dot_config/shell/custom/error_analysis.zsh +0 -45
  163. package/dot_config/sops/dot_sops.yaml +0 -23
  164. package/dot_config/starship.toml.tmpl +0 -124
  165. package/dot_config/task/Taskfile.yml +0 -86
  166. package/dot_config/tflint/tflint.hcl.tmpl +0 -9
  167. package/dot_config/tmux/tmux.conf.tmpl +0 -181
  168. package/dot_config/topgrade/topgrade.toml.tmpl +0 -42
  169. package/dot_config/vscode/extensions.txt +0 -11
  170. package/dot_config/vscode/settings.json.tmpl +0 -123
  171. package/dot_config/waybar/style.css +0 -8
  172. package/dot_config/wezterm/wezterm.lua.tmpl +0 -236
  173. package/dot_config/wget/wgetrc +0 -12
  174. package/dot_config/yarn/yarnrc.yml.tmpl +0 -36
  175. package/dot_config/yazi/yazi.toml +0 -40
  176. package/dot_config/zellij/config.kdl +0 -79
  177. package/dot_config/zsh/dot_zprofile +0 -13
  178. package/dot_config/zsh/dot_zshenv +0 -6
  179. package/dot_config/zsh/dot_zshrc.tmpl +0 -199
  180. package/dot_config/zsh/rc.d/05-ssh-agent.zsh +0 -5
  181. package/dot_config/zsh/rc.d/10-env.zsh.tmpl +0 -28
  182. package/dot_config/zsh/rc.d/20-zinit.zsh.tmpl +0 -22
  183. package/dot_config/zsh/rc.d/30-options.zsh.tmpl +0 -123
  184. package/dot_config/zsh/rc.d/40-bell.zsh.tmpl +0 -20
  185. package/dot_config/zsh/rc.d/50-login-fortune.zsh.tmpl +0 -9
  186. package/dot_local/bin/executable_ai_core +0 -130
  187. package/dot_local/bin/executable_b64 +0 -59
  188. package/dot_local/bin/executable_dot +0 -178
  189. package/dot_local/bin/executable_dot_completion +0 -55
  190. package/dot_local/bin/executable_epoch +0 -62
  191. package/dot_local/bin/executable_extract +0 -108
  192. package/dot_local/bin/executable_git-ai-commit +0 -160
  193. package/dot_local/bin/executable_git-ai-diff +0 -154
  194. package/dot_local/bin/executable_hash +0 -123
  195. package/dot_local/bin/executable_hex +0 -79
  196. package/dot_local/bin/executable_ip +0 -37
  197. package/dot_local/bin/executable_jsonv +0 -54
  198. package/dot_local/bin/executable_jwt +0 -78
  199. package/dot_local/bin/executable_kill-port +0 -59
  200. package/dot_local/bin/executable_lorem +0 -103
  201. package/dot_local/bin/executable_regex +0 -96
  202. package/dot_local/bin/executable_tmux-sessionizer +0 -187
  203. package/dot_local/bin/executable_tour +0 -137
  204. package/dot_local/bin/executable_update +0 -108
  205. package/dot_local/bin/executable_uuid +0 -57
  206. package/dot_local/bin/executable_yamlv +0 -39
  207. package/dot_local/bin/executable_zig-install +0 -89
  208. package/dot_local/bin/voice_ops +0 -7
  209. package/dot_local/share/bash-completion/completions/dot +0 -54
  210. package/dot_local/share/zsh/completions/.keep +0 -0
  211. package/install.sh +0 -255
  212. package/scripts/ci/validate-ci-config.sh +0 -222
  213. package/scripts/demo/record.sh +0 -41
  214. package/scripts/diagnostics/benchmark.sh +0 -201
  215. package/scripts/diagnostics/doctor.sh +0 -115
  216. package/scripts/diagnostics/drift-dashboard.sh +0 -26
  217. package/scripts/diagnostics/health.sh +0 -356
  218. package/scripts/diagnostics/history-analysis.sh +0 -77
  219. package/scripts/diagnostics/security-score.sh +0 -392
  220. package/scripts/dot/commands/appearance.sh +0 -63
  221. package/scripts/dot/commands/core.sh +0 -130
  222. package/scripts/dot/commands/diagnostics.sh +0 -100
  223. package/scripts/dot/commands/meta.sh +0 -117
  224. package/scripts/dot/commands/restore.sh +0 -209
  225. package/scripts/dot/commands/secrets.sh +0 -81
  226. package/scripts/dot/commands/security.sh +0 -73
  227. package/scripts/dot/commands/tools.sh +0 -228
  228. package/scripts/dot/lib/utils.sh +0 -72
  229. package/scripts/fonts/install-nerd-fonts.sh +0 -59
  230. package/scripts/fonts/patch-fonts.sh +0 -34
  231. package/scripts/ops/chezmoi-apply.sh +0 -42
  232. package/scripts/ops/chezmoi-diff.sh +0 -14
  233. package/scripts/ops/chezmoi-remove.sh +0 -43
  234. package/scripts/ops/chezmoi-update.sh +0 -16
  235. package/scripts/ops/heal.sh +0 -466
  236. package/scripts/ops/health-check.sh +0 -380
  237. package/scripts/ops/rollback.sh +0 -531
  238. package/scripts/ops/teleport.sh +0 -32
  239. package/scripts/secrets/age-init.sh +0 -69
  240. package/scripts/secrets/create-secrets-file.sh +0 -44
  241. package/scripts/secrets/encrypt-ssh-key.sh +0 -42
  242. package/scripts/security/backup.sh +0 -17
  243. package/scripts/security/dns-doh.sh +0 -29
  244. package/scripts/security/encryption-check.sh +0 -39
  245. package/scripts/security/enforce-policies.sh +0 -339
  246. package/scripts/security/firewall.sh +0 -34
  247. package/scripts/security/lock-configs.sh +0 -57
  248. package/scripts/security/lock-screen.sh +0 -33
  249. package/scripts/security/manage-secrets.sh +0 -415
  250. package/scripts/security/telemetry-kill.sh +0 -28
  251. package/scripts/security/usb-safety.sh +0 -29
  252. package/scripts/tests/README.md +0 -241
  253. package/scripts/tests/benchmark.sh +0 -91
  254. package/scripts/tests/framework/assertions.sh +0 -283
  255. package/scripts/tests/framework/mocks.sh +0 -201
  256. package/scripts/tests/framework/test_runner.sh +0 -189
  257. package/scripts/tests/integration/test_install.sh +0 -237
  258. package/scripts/tests/performance/benchmark_runner.sh +0 -156
  259. package/scripts/tests/performance/regression_check.sh +0 -73
  260. package/scripts/tests/performance/stress_test.sh +0 -65
  261. package/scripts/tests/test-docker.sh +0 -48
  262. package/scripts/tests/unit/test_ai_aliases.sh +0 -158
  263. package/scripts/tests/unit/test_ai_cli_checks.sh +0 -47
  264. package/scripts/tests/unit/test_backup.sh +0 -227
  265. package/scripts/tests/unit/test_case_functions.sh +0 -238
  266. package/scripts/tests/unit/test_cd_aliases.sh +0 -367
  267. package/scripts/tests/unit/test_dot_cli.sh +0 -217
  268. package/scripts/tests/unit/test_encode64.sh +0 -67
  269. package/scripts/tests/unit/test_environment.sh +0 -78
  270. package/scripts/tests/unit/test_extract.sh +0 -163
  271. package/scripts/tests/unit/test_framework_edge_cases.sh +0 -113
  272. package/scripts/tests/unit/test_genpass.sh +0 -298
  273. package/scripts/tests/unit/test_install_edge_cases.sh +0 -167
  274. package/scripts/tests/unit/test_installers.sh +0 -172
  275. package/scripts/tests/unit/test_keygen.sh +0 -68
  276. package/scripts/tests/unit/test_logging.sh +0 -96
  277. package/scripts/tests/unit/test_os_detection_comprehensive.sh +0 -388
  278. package/scripts/tests/unit/test_package_managers_comprehensive.sh +0 -321
  279. package/scripts/tests/unit/test_prependpath.sh +0 -66
  280. package/scripts/tests/unit/test_prependpath_refactored.sh +0 -89
  281. package/scripts/tests/unit/test_rd.sh +0 -230
  282. package/scripts/tests/unit/test_security_fixes.sh +0 -130
  283. package/scripts/tests/unit/test_security_scripts.sh +0 -87
  284. package/scripts/tests/unit/test_template_validation.sh +0 -238
  285. package/scripts/tests/unit/test_utility_functions.sh +0 -144
  286. package/scripts/tests/unit/test_wave1_alias_split.sh +0 -132
  287. package/scripts/tests/unit/test_wave1_ci_pinning.sh +0 -61
  288. package/scripts/tests/unit/test_wave1_gitleaks_config.sh +0 -52
  289. package/scripts/tests/unit/test_wave1_heal_fixes.sh +0 -97
  290. package/scripts/tests/unit/test_wave1_install_gpg.sh +0 -35
  291. package/scripts/tests/unit/test_wave1_zshenv_path.sh +0 -89
  292. package/scripts/tests/unit/test_wave1_zshrc_lazy_hook.sh +0 -115
  293. package/scripts/tests/unit/test_wave2_dot_new_guard.sh +0 -75
  294. package/scripts/tests/unit/test_zipf.sh +0 -76
  295. package/scripts/theme/apply-gnome-theme.sh +0 -297
  296. package/scripts/theme/install-boot-logo.sh +0 -61
  297. package/scripts/theme/install-catppuccin-themes.sh +0 -346
  298. package/scripts/theme/install-cursors.sh +0 -24
  299. package/scripts/theme/install-file-icons.sh +0 -25
  300. package/scripts/theme/install-grub-theme.sh +0 -51
  301. package/scripts/theme/install-lock-icon.sh +0 -29
  302. package/scripts/theme/switch.sh +0 -250
  303. package/scripts/theme/wallpaper-rotate.sh +0 -82
  304. package/scripts/theme/wallpaper-sync.sh +0 -42
  305. package/scripts/tools/cmatrix.sh +0 -20
  306. package/scripts/tools/emoji-picker.sh +0 -45
  307. package/scripts/tools/figlet-banner.sh +0 -17
  308. package/scripts/tools/log-rotate.sh +0 -29
  309. package/scripts/tools/lolcat-wrap.sh +0 -18
  310. package/scripts/tools/pipes.sh +0 -47
  311. package/scripts/tuning/linux.sh +0 -175
  312. package/scripts/tuning/macos.sh +0 -46
  313. package/templates/projects/molecule/README.md +0 -7
  314. package/templates/projects/molecule/converge.yml +0 -7
  315. package/templates/projects/molecule/molecule.yml +0 -16
  316. package/templates/projects/packer/README.md +0 -15
  317. package/templates/projects/packer/main.pkr.hcl +0 -15
package/docs/TESTING.md DELETED
@@ -1,190 +0,0 @@
1
- # Testing strategy
2
-
3
- ## Overview
4
-
5
- This repository uses a multi-layer testing approach:
6
- - **Unit Tests**: Individual function validation
7
- - **Integration Tests**: System-wide behavior verification
8
- - **Performance Tests**: Resource efficiency benchmarks
9
-
10
- ## Running tests
11
-
12
- ### Quick start
13
- ```bash
14
- # Run all unit tests
15
- ./scripts/tests/framework/test_runner.sh
16
-
17
- # Run specific test suite
18
- ./scripts/tests/framework/test_runner.sh extract
19
-
20
- # Run integration tests
21
- RUN_INTEGRATION=1 ./scripts/tests/framework/test_runner.sh
22
-
23
- # Run performance benchmarks
24
- ./scripts/tests/performance/benchmark_runner.sh
25
- ```
26
-
27
- ## Test structure
28
-
29
- ```
30
- scripts/tests/
31
- ├── framework/ # Test framework
32
- │ ├── assertions.sh # 15+ assertion functions
33
- │ ├── mocks.sh # Mock utilities
34
- │ └── test_runner.sh # Test executor
35
- ├── unit/ # Unit tests
36
- ├── integration/ # Integration tests
37
- └── performance/ # Benchmarks
38
- ```
39
-
40
- ## Writing tests
41
-
42
- ### Test file template
43
- ```bash
44
- #!/usr/bin/env bash
45
- SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
46
- source "$SCRIPT_DIR/../framework/assertions.sh"
47
-
48
- # Source function under test
49
- source "$HOME/.dotfiles/.chezmoitemplates/functions/myfunction.sh"
50
-
51
- # Test cases
52
- test_start "function_basic_usage"
53
- assert_exit_code 0 "myfunction arg1"
54
-
55
- test_start "function_no_args"
56
- assert_exit_code 1 "myfunction"
57
- ```
58
-
59
- ### Available assertions
60
-
61
- | Function | Description |
62
- |----------|-------------|
63
- | `assert_equals expected actual [msg]` | Assert two values are equal |
64
- | `assert_not_equals unexpected actual [msg]` | Assert two values differ |
65
- | `assert_exit_code code command` | Assert command exits with code |
66
- | `assert_output_contains needle command` | Assert output contains string |
67
- | `assert_output_not_contains needle command` | Assert output lacks string |
68
- | `assert_output_matches pattern command` | Assert output matches regex |
69
- | `assert_file_exists path [msg]` | Assert file exists |
70
- | `assert_file_not_exists path [msg]` | Assert file doesn't exist |
71
- | `assert_dir_exists path [msg]` | Assert directory exists |
72
- | `assert_dir_not_exists path [msg]` | Assert directory doesn't exist |
73
- | `assert_true condition [msg]` | Assert condition is true |
74
- | `assert_false condition [msg]` | Assert condition is false |
75
- | `assert_empty value [msg]` | Assert string is empty |
76
- | `assert_not_empty value [msg]` | Assert string is not empty |
77
- | `assert_file_contains file needle [msg]` | Assert file contains text |
78
-
79
- ### Mock utilities
80
-
81
- | Function | Description |
82
- |----------|-------------|
83
- | `mock_init` | Initialize mock environment |
84
- | `mock_command name output [exit_code]` | Create mock command |
85
- | `mock_command_spy name [output] [exit_code]` | Create mock that records calls |
86
- | `mock_get_calls name` | Get spy call history |
87
- | `mock_call_count name` | Get number of spy calls |
88
- | `mock_file content [filename]` | Create temp file with content |
89
- | `mock_dir [prefix]` | Create temp directory |
90
- | `mock_archive type [content]` | Create mock archive file |
91
- | `mock_env var_name value` | Set environment variable |
92
- | `mock_cleanup` | Clean up all mocks |
93
-
94
- ## Coverage goals
95
-
96
- | Category | Target | Current |
97
- |----------|--------|---------|
98
- | Functions | >80% | ~85% |
99
- | Scripts | >70% | ~75% |
100
- | Integration | >90% | ~95% |
101
-
102
- ## CI integration
103
-
104
- Tests run automatically on:
105
- - Every push to main
106
- - Every pull request
107
- - Weekly scheduled runs (Monday 6 AM UTC)
108
-
109
- ### GitHub Actions example
110
-
111
- ```yaml
112
- - name: Run Tests
113
- run: |
114
- chmod +x ./scripts/tests/framework/test_runner.sh
115
- ./scripts/tests/framework/test_runner.sh
116
-
117
- - name: Run Integration Tests
118
- run: |
119
- RUN_INTEGRATION=1 ./scripts/tests/framework/test_runner.sh
120
-
121
- - name: Run Performance Benchmarks
122
- run: |
123
- ./scripts/tests/performance/benchmark_runner.sh
124
- ```
125
-
126
- ## Test categories
127
-
128
- ### Unit Tests (`scripts/tests/unit/`)
129
-
130
- Test individual functions in isolation:
131
-
132
- - **test_extract.sh** - Archive extraction function
133
- - **test_backup.sh** - Backup creation function
134
- - **test_genpass.sh** - Password generation function
135
- - **test_rd.sh** - Directory removal function (with security tests)
136
- - **test_cd_aliases.sh** - Directory navigation aliases
137
-
138
- ### Integration Tests (`scripts/tests/integration/`)
139
-
140
- Test complete workflows:
141
-
142
- - **test_install.sh** - Installation script validation
143
-
144
- ### Performance Tests (`scripts/tests/performance/`)
145
-
146
- Measure resource efficiency:
147
-
148
- - **benchmark_runner.sh** - Shell startup and operation benchmarks
149
- - **stress_test.sh** - Load testing utilities
150
-
151
- ## Environment variables
152
-
153
- | Variable | Default | Description |
154
- |----------|---------|-------------|
155
- | `RUN_INTEGRATION` | `0` | Set to `1` to run integration tests |
156
- | `VERBOSE` | `0` | Set to `1` for verbose output |
157
- | `REPO_ROOT` | Auto-detected | Repository root directory |
158
- | `TESTS_DIR` | Auto-detected | Tests directory |
159
-
160
- ## Best practices
161
-
162
- 1. **Isolation**: Each test should be independent
163
- 2. **Cleanup**: Use mocks that auto-cleanup via traps
164
- 3. **No Sleep**: Avoid `sleep` or hardcoded delays
165
- 4. **Descriptive Names**: Test names should describe what's being tested
166
- 5. **Edge Cases**: Test error conditions, not just happy paths
167
- 6. **Security**: Include tests for dangerous input rejection
168
-
169
- ## Troubleshooting
170
-
171
- ### Tests not found
172
-
173
- Ensure test files match the pattern `test_*.sh` and are executable:
174
-
175
- ```bash
176
- chmod +x scripts/tests/unit/test_*.sh
177
- chmod +x scripts/tests/integration/test_*.sh
178
- ```
179
-
180
- ### Function not available
181
-
182
- If a test shows "function not available", verify the source file exists:
183
-
184
- ```bash
185
- ls -la .chezmoitemplates/functions/
186
- ```
187
-
188
- ### Mock cleanup issues
189
-
190
- If mocks aren't cleaning up, ensure you're not running with `set -e` before mock operations that might fail.
package/docs/TOOLS.md DELETED
@@ -1,146 +0,0 @@
1
- # Tools
2
-
3
- These are the main tools and CLI conveniences included with Dotfiles.
4
-
5
- ## Core
6
-
7
- | Tool | Description |
8
- |------|-------------|
9
- | Zsh | Shell |
10
- | Starship | Cross-shell prompt |
11
- | tmux | Terminal multiplexer |
12
- | Neovim | Modern Vim-based editor |
13
-
14
- ## Search and navigation
15
-
16
- | Tool | Description |
17
- |------|-------------|
18
- | fzf | Fuzzy finder |
19
- | zoxide | Smart directory jumping |
20
- | ripgrep | Fast text search |
21
- | fd | Developer-friendly find |
22
- | bat | Cat with syntax highlighting |
23
- | eza | Modern ls replacement |
24
- | lsd | LSDeluxe file listing |
25
- | duf | Disk usage utility |
26
- | ncdu | NCurses disk usage |
27
- | htop | Process viewer |
28
- | btop | Resource monitor |
29
-
30
- ## Terminal
31
-
32
- | Tool | Description |
33
- |------|-------------|
34
- | WezTerm | GPU-accelerated terminal |
35
- | Alacritty | Fast terminal |
36
- | Kitty | Feature-rich terminal |
37
- | Ghostty | Native terminal |
38
- | fastfetch | System info |
39
- | figlet | ASCII banners |
40
- | lolcat | Rainbow output |
41
- | cowsay | ASCII cow messages |
42
- | cmatrix | Matrix screensaver |
43
- | pipes | Pipe screensaver |
44
- | atuin | Shell history sync |
45
- | yazi | Terminal file manager |
46
-
47
- ## Git
48
-
49
- | Tool | Description |
50
- |------|-------------|
51
- | git | Version control |
52
- | lazygit | Terminal UI for Git |
53
- | delta | Syntax-highlighted diffs |
54
- | gh | GitHub CLI |
55
- | glab | GitLab CLI |
56
-
57
- ## AI CLI Tools
58
-
59
- | Tool | NPM Package | Description |
60
- |------|-------------|-------------|
61
- | claude | @anthropic-ai/claude-code | Anthropic Claude CLI |
62
- | gemini | @google/gemini-cli | Google Gemini CLI |
63
- | sgpt | shell-gpt | OpenAI-compatible CLI (Shell GPT) |
64
- | ollama | ollama | Local LLM runtime and CLI |
65
- | codex | @openai/codex | OpenAI Codex CLI |
66
- | opencode | opencode-ai | OpenCode AI assistant |
67
- | droid | @factory/cli | Factory AI Droid |
68
- | aider | aider-chat | Git-native AI pair programming |
69
-
70
-
71
- ## Data processing
72
-
73
-
74
- | Tool | Description |
75
- |------|-------------|
76
- | jq | JSON processor |
77
- | yq | YAML processor |
78
- | hexyl | Hex viewer |
79
-
80
- ## Kubernetes
81
-
82
- | Tool | Description |
83
- |------|-------------|
84
- | kubectl | Kubernetes CLI |
85
- | kubectx | Context switcher |
86
- | kubens | Namespace switcher |
87
- | k9s | Kubernetes TUI |
88
- | stern | Multi-pod log tailer |
89
- | kube-linter | Manifest linter |
90
- | kubesec | Security scanner |
91
- | minikube | Local Kubernetes |
92
- | helm | Package manager |
93
-
94
- ## Database CLIs
95
-
96
- | Tool | Description |
97
- |------|-------------|
98
- | psql | PostgreSQL CLI |
99
- | mycli | MySQL CLI with autocomplete |
100
- | sqlite3 | SQLite CLI |
101
- | redis-cli | Redis CLI |
102
- | mongosh | MongoDB Shell |
103
-
104
- ## Security
105
-
106
- | Tool | Description |
107
- |------|-------------|
108
- | age | Modern encryption |
109
- | gnupg | OpenPGP implementation |
110
-
111
- ## Developer tools
112
-
113
- - Git helpers and sane defaults
114
- - Project templates (`dot new`)
115
- - Sandbox preview (`dot sandbox`)
116
- - Benchmarking (`dot benchmark`)
117
- - Lua tooling (`luacheck`, `stylua`, `luarocks`, `lua/luajit`)
118
-
119
- ## Security features
120
-
121
- - Firewall hardening
122
- - Telemetry disable
123
- - DNS-over-HTTPS (Linux)
124
- - Lock-screen enforcement
125
- - Encryption checks
126
-
127
- ## Aliases
128
-
129
- Aliases live in category directories under:
130
-
131
- ```
132
- ~/.dotfiles/.chezmoitemplates/aliases/<category>/<name>.aliases.sh
133
- ```
134
-
135
- Apply changes with:
136
-
137
- ```bash
138
- chezmoi apply
139
- ```
140
-
141
- ## Make it yours
142
-
143
- - Wallpaper sync/rotate scripts
144
- - Cursor and icon theming helpers (Linux)
145
- - Lock screen icon helper (Linux)
146
- - GRUB theme / boot logo helpers (Linux)
@@ -1,112 +0,0 @@
1
- # Troubleshooting
2
-
3
- Quick checks for common issues.
4
-
5
- ## Install and update
6
-
7
- **Problem:** Install script fails immediately
8
- - Verify that `git` and `curl` are installed.
9
- - Check internet connectivity.
10
- - Try running with verbose output: `bash -x install.sh`
11
-
12
- **Problem:** Chezmoi apply fails
13
- - Re-run `chezmoi apply` to re-sync state.
14
- - Check for merge conflicts: `chezmoi diff`
15
- - If hooks fail, check `~/.local/share/dotfiles.log` for details.
16
-
17
- **Problem:** Packages fail to install
18
- - macOS: Verify Homebrew is installed and up to date (`brew update`)
19
- - Linux: Run `sudo apt-get update` first
20
- - Verify you have sufficient permissions
21
-
22
- ## Shell startup
23
-
24
- **Problem:** Shell is slow to start
25
- - Run `dot benchmark` to measure startup time
26
- - Profile with `zsh -x` to trace startup
27
- - Check for slow plugins or large history files
28
-
29
- **Problem:** Aliases or functions not available
30
- - Run `chezmoi apply` to regenerate config files
31
- - Source your shell config: `source ~/.zshrc`
32
- - Verify the relevant tool is installed
33
-
34
- **Problem:** Shell crashes on startup
35
- - Temporarily move `~/.zshrc` and retry to isolate the fault
36
- - Check for syntax errors: `zsh -n ~/.zshrc`
37
- - Review recent changes: `chezmoi diff`
38
-
39
- ## Secrets and encryption
40
-
41
- **Problem:** Encrypted files fail to decrypt
42
- - Confirm `~/.config/chezmoi/key.txt` exists.
43
- - Verify the key matches the one used for encryption.
44
- - Re-initialize with `dot secrets-init` if needed.
45
-
46
- **Problem:** Age encryption not working
47
- - Verify `age` is installed: `command -v age`
48
- - Check key permissions: `ls -la ~/.config/chezmoi/key.txt` (should be 600)
49
-
50
- ## Neovim
51
-
52
- **Problem:** Plugins fail to load
53
- - Run `:checkhealth` in Neovim
54
- - Update plugins: `:Lazy sync`
55
- - Check for missing dependencies (node, python, etc.)
56
-
57
- **Problem:** LSP not working
58
- - Install required language servers
59
- - Check `:LspInfo` for status
60
- - Review `:LspLog` for errors
61
-
62
- ## Git
63
-
64
- **Problem:** Git aliases not working
65
- - Check if Git config is applied: `git config --list`
66
- - Re-apply dotfiles: `chezmoi apply`
67
-
68
- **Problem:** Delta (diff pager) not showing colors
69
- - Verify `delta` is installed
70
- - Confirm your terminal supports 256 colors
71
-
72
- ## Kubernetes tools
73
-
74
- **Problem:** kubectl context issues
75
- - List contexts: `kubectl config get-contexts`
76
- - Switch context: `kubectx <context-name>`
77
- - Check kubeconfig: `echo $KUBECONFIG`
78
-
79
- **Problem:** Minikube won't start
80
- - Verify Docker is running
81
- - Try: `minikube delete && minikube start`
82
- - Check logs: `minikube logs`
83
-
84
- ## Performance
85
-
86
- **Problem:** High memory usage
87
- - Look for runaway processes: `htop` or `btop`
88
- - Review shell history size in atuin config
89
- - Disable unused plugins
90
-
91
- ## Advanced Troubleshooting
92
-
93
- ### WSL2 and Nix Integration Issues
94
-
95
- For complex WSL2 edge cases, Nix integration problems, and recovery procedures, see the comprehensive guide:
96
- **[WSL2 & Nix Troubleshooting Guide](WSL2_NIX_TROUBLESHOOTING.md)**
97
-
98
- This guide covers:
99
- - WSL2 filesystem and networking edge cases
100
- - Nix installation and flake management issues
101
- - Complete system recovery procedures
102
- - Performance optimization for WSL2/Nix environments
103
- - Cross-platform migration scenarios
104
-
105
- ## Still stuck
106
-
107
- Open an issue with:
108
- - OS + version
109
- - Output of `dot doctor` (if available)
110
- - Relevant log snippets from `~/.local/share/dotfiles.log`
111
- - Steps to reproduce the issue
112
- - For WSL2/Nix issues: Include diagnostic report from the advanced guide
package/docs/UTILS.md DELETED
@@ -1,105 +0,0 @@
1
- # Discover utilities
2
-
3
- These utilities are available through aliases, functions, and the `dot` CLI. The collection stays small and practical on purpose.
4
-
5
- ## Dot CLI
6
-
7
- The `dot` command is your primary interface for managing dotfiles. Run `dot --version` to check the installed version.
8
-
9
- ### Core commands
10
-
11
- | Command | Description |
12
- |---------|-------------|
13
- | `dot apply` | Apply dotfiles (chezmoi apply) |
14
- | `dot sync` | Alias of apply |
15
- | `dot update` | Pull latest changes and apply |
16
- | `dot add <file>` | Add a file to chezmoi source |
17
- | `dot diff` | Show local changes (excludes scripts) |
18
- | `dot status` | Show configuration drift |
19
- | `dot cd` | Print source directory path |
20
- | `dot edit` | Open source in your editor |
21
-
22
- ### Diagnostics
23
-
24
- | Command | Description |
25
- |---------|-------------|
26
- | `dot doctor` | Run system health checks |
27
- | `dot drift` | Detailed configuration drift dashboard |
28
- | `dot history` | Analyse shell history |
29
- | `dot benchmark` | Measure shell startup time |
30
-
31
- ### Tools
32
-
33
- | Command | Description |
34
- |---------|-------------|
35
- | `dot tools` | Show tools documentation |
36
- | `dot tools install` | Enter Nix development shell |
37
- | `dot new <lang> <name>` | Scaffold a project (python/go/node) |
38
- | `dot sandbox` | Launch Docker sandbox preview |
39
- | `dot log-rotate` | Rotate `~/.local/share/dotfiles.log` |
40
-
41
- ## Git
42
-
43
- You can use these shorthand aliases for everyday Git operations:
44
-
45
- - `g`, `ga`, `gco`, `gst`, `gl`, `gll`, and related aliases
46
- - `lg` shows a graph log; `lgui` opens `lazygit` (if installed)
47
- - `gh` aliases in `~/.config/gh/config.yml`
48
-
49
- ## Docker
50
-
51
- These Docker aliases help you manage containers and images:
52
-
53
- - `dco` for `docker compose`
54
- - `dps`, `dpsa` for container listing
55
- - `dexec`, `denter` for container shells
56
- - `dlogsf`, `dl` for following logs
57
- - `dprune`, `dprunea` for system cleanup
58
- - `dbx`, `dbxbuild` for buildx operations
59
- - `lzd` for lazydocker TUI
60
-
61
- ## Search
62
-
63
- You can search and navigate your filesystem with:
64
-
65
- - `rg` (ripgrep), `fd` (find)
66
- - `z <dir>` (zoxide jump)
67
-
68
- ## Text
69
-
70
- - `jq` for JSON
71
- - `bat` for quick file previews
72
-
73
- ## Terminal
74
-
75
- - `banner` for quick figlet-style banners
76
- - `rainbow` for lolcat-style output
77
- - `emoji` for an emoji picker (copies to clipboard)
78
- - `pipes` for a terminal screensaver
79
- - `cmatrix` wrapper with defaults
80
-
81
- ## Network
82
-
83
- You can debug HTTP requests with:
84
-
85
- - `curlheader`, `curlstatus`, `curltime`, `httpdebug`
86
-
87
- ## Appearance
88
-
89
- - `dot theme` to switch terminal themes (dark/light)
90
- - `dot wallpaper` to apply a wallpaper
91
- - `dot fonts` to install Nerd Fonts
92
-
93
- ## Security (opt-in)
94
-
95
- - `dot backup` to create a compressed backup
96
- - `dot encrypt-check` to check disk encryption status
97
- - `dot firewall` to apply firewall hardening
98
- - `dot telemetry` to disable telemetry
99
- - `dot dns-doh` to enable DNS-over-HTTPS
100
- - `dot lock-screen` to enforce lock screen idle settings
101
- - `dot usb-safety` to disable automount for removable media
102
-
103
- ## Fonts
104
-
105
- - `~/.dotfiles/scripts/fonts/patch-fonts.sh` to patch a font with Nerd Fonts