@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.
- package/docs/ARCHITECTURE.md +29 -196
- package/docs/COMPLIANCE.md +10 -10
- package/docs/COPYRIGHT +3 -4
- package/docs/OPERATIONS.md +38 -65
- package/docs/PLAN.md +3 -3
- package/docs/PR_DESCRIPTION.md +85 -84
- package/docs/ROADMAP.md +11 -11
- package/docs/ROADMAP_legacy.md +556 -0
- package/docs/SECURITY_CHECKLIST.md +1 -1
- package/docs/TASK.md +4 -4
- package/docs/WALKTHROUGH.md +33 -152
- package/package.json +17 -5
- package/scripts/backup.sh +142 -0
- package/scripts/banner.sh +20 -0
- package/scripts/benchmark.sh +20 -0
- package/scripts/build.sh +41 -0
- package/scripts/clean.sh +31 -0
- package/scripts/compile.sh +54 -0
- package/scripts/copy.sh +108 -0
- package/scripts/{tools/detect-collisions.py → detect-collisions.py} +1 -1
- package/scripts/doctor.sh +79 -0
- package/scripts/dotfiles.sh +63 -0
- package/scripts/download.sh +35 -0
- package/scripts/help.sh +57 -0
- package/scripts/lock-configs.sh +57 -0
- package/scripts/package.sh +46 -0
- package/scripts/ssh.sh +55 -0
- package/scripts/teleport.sh +23 -0
- package/scripts/{tests/test-aliases.sh → test-aliases.sh} +3 -3
- package/scripts/test_smoke.sh +88 -0
- package/scripts/unpack.sh +28 -0
- package/scripts/{diagnostics/verify_state.sh → verify_state.sh} +21 -21
- package/templates/projects/go/README.md +0 -4
- package/templates/projects/node/README.md +0 -4
- package/templates/projects/python/README.md +0 -4
- package/templates/projects/python/pyproject.toml +0 -15
- package/CHANGELOG.md +0 -285
- package/LICENSE +0 -1283
- package/README.md +0 -315
- package/docs/ALIASES.md +0 -128
- package/docs/FEATURES.md +0 -166
- package/docs/FONTS.md +0 -147
- package/docs/INSTALL.md +0 -119
- package/docs/KEYS.md +0 -40
- package/docs/KEY_ROTATION.md +0 -219
- package/docs/LEGACY_ROADMAP.md +0 -142
- package/docs/NEOVIM_IDE_GUIDE.md +0 -52
- package/docs/README.md +0 -269
- package/docs/REPO_AUDIT.md +0 -23
- package/docs/SCREENSHOTS.md +0 -116
- package/docs/SECRETS.md +0 -76
- package/docs/SECURITY.md +0 -30
- package/docs/TESTING.md +0 -190
- package/docs/TOOLS.md +0 -146
- package/docs/TROUBLESHOOTING.md +0 -112
- package/docs/UTILS.md +0 -105
- package/docs/WSL2_NIX_TROUBLESHOOTING.md +0 -723
- package/docs/adr/ADR-001-ci-cd-pipeline.md +0 -101
- package/docs/adr/ADR-002-shell-performance.md +0 -121
- package/docs/adr/ADR-003-security-first.md +0 -140
- package/docs/adr/ADR-004-cli-architecture.md +0 -157
- package/docs/adr/ADR-005-chezmoi-choice.md +0 -89
- package/docs/adr/ADR-006-shell-selection.md +0 -115
- package/docs/adr/README.md +0 -33
- package/docs/themes/README.md +0 -20
- package/dot_config/aider/aider.conf.yml +0 -32
- package/dot_config/alacritty/alacritty.toml.tmpl +0 -483
- package/dot_config/ansible/ansible.cfg.tmpl +0 -11
- package/dot_config/atuin/config.toml +0 -23
- package/dot_config/bat/config +0 -8
- package/dot_config/brave-flags.conf.tmpl +0 -7
- package/dot_config/btop/btop.conf +0 -16
- package/dot_config/btop/themes/tokyonight.theme +0 -34
- package/dot_config/bun/bunfig.toml.tmpl +0 -33
- package/dot_config/claude/mcp_servers.json +0 -49
- package/dot_config/clippy.toml +0 -55
- package/dot_config/containers/containers.conf +0 -14
- package/dot_config/curl/dot_curlrc +0 -18
- package/dot_config/dlv/config.yml +0 -39
- package/dot_config/docker/config.json.tmpl +0 -15
- package/dot_config/dotfiles/boot/README.md +0 -11
- package/dot_config/dotfiles/grub/README.md +0 -11
- package/dot_config/dotfiles/lock/README.md +0 -11
- package/dot_config/dotfiles/versions.env.tmpl +0 -19
- package/dot_config/duf/duf.conf +0 -6
- package/dot_config/duti/defaults.duti +0 -5
- package/dot_config/emoji/emoji.txt +0 -34
- package/dot_config/fastfetch/config.jsonc +0 -28
- package/dot_config/firefox/user.js +0 -8
- package/dot_config/flatpak/flatpak.list +0 -4
- package/dot_config/fontconfig/fonts.conf.tmpl +0 -44
- package/dot_config/gem/gemrc +0 -9
- package/dot_config/gh/config.yml +0 -12
- package/dot_config/ghostty/config.tmpl +0 -661
- package/dot_config/git/attributes +0 -12
- package/dot_config/git/config.tmpl +0 -77
- package/dot_config/git/ignore +0 -27
- package/dot_config/gnupg/gpg-agent.conf.tmpl +0 -11
- package/dot_config/go/aliases.sh +0 -61
- package/dot_config/go/env.sh +0 -24
- package/dot_config/go/golangci.yml +0 -118
- package/dot_config/go/gopls.json +0 -30
- package/dot_config/goose/config.yaml +0 -29
- package/dot_config/gtk-3.0/gtk.css.tmpl +0 -305
- package/dot_config/gtk-3.0/settings.ini.tmpl +0 -66
- package/dot_config/gtk-4.0/gtk.css.tmpl +0 -309
- package/dot_config/gtk-4.0/settings.ini.tmpl +0 -21
- package/dot_config/htop/htoprc +0 -20
- package/dot_config/ice/README.md +0 -13
- package/dot_config/inputrc +0 -2
- package/dot_config/ipython/profile_default/ipython_config.py.tmpl +0 -5
- package/dot_config/just/justfile +0 -104
- package/dot_config/k9s/config.yaml.tmpl +0 -65
- package/dot_config/k9s/skins/catppuccin-mocha.yaml +0 -116
- package/dot_config/karabiner/karabiner.json +0 -14
- package/dot_config/kitty/kitty.conf.tmpl +0 -517
- package/dot_config/lazydocker/config.yml +0 -186
- package/dot_config/lazygit/config.yml +0 -23
- package/dot_config/lsd/config.yaml +0 -19
- package/dot_config/mas/masapps.txt +0 -5
- package/dot_config/minikube/config.json +0 -13
- package/dot_config/mise/config.toml +0 -41
- package/dot_config/mongosh/mongoshrc.js +0 -67
- package/dot_config/mycli/myclirc +0 -67
- package/dot_config/nano/nanorc +0 -28
- package/dot_config/ncdu/config +0 -12
- package/dot_config/nvim/init.lua +0 -4
- package/dot_config/nvim/lazy-lock.json +0 -27
- package/dot_config/nvim/lua/config/autocmds.lua +0 -63
- package/dot_config/nvim/lua/config/keymaps.lua +0 -87
- package/dot_config/nvim/lua/config/lazy.lua +0 -34
- package/dot_config/nvim/lua/config/options.lua +0 -48
- package/dot_config/nvim/lua/plugins/coding.lua +0 -234
- package/dot_config/nvim/lua/plugins/dap.lua +0 -201
- package/dot_config/nvim/lua/plugins/editor.lua +0 -59
- package/dot_config/nvim/lua/plugins/git.lua +0 -9
- package/dot_config/nvim/lua/plugins/lsp.lua +0 -221
- package/dot_config/nvim/lua/plugins/markdown.lua +0 -17
- package/dot_config/nvim/lua/plugins/rust.lua +0 -33
- package/dot_config/nvim/lua/plugins/sessions.lua +0 -32
- package/dot_config/nvim/lua/plugins/ui.lua +0 -537
- package/dot_config/nvim/snippets/all.lua +0 -9
- package/dot_config/nvim/snippets/python.lua +0 -16
- package/dot_config/pip/pip.conf.tmpl +0 -32
- package/dot_config/pypoetry/config.toml.tmpl +0 -6
- package/dot_config/pyrightconfig.json.tmpl +0 -5
- package/dot_config/raycast/README.md +0 -13
- package/dot_config/redis/redisclirc +0 -41
- package/dot_config/shell/00-container-detect.sh +0 -53
- package/dot_config/shell/00-core-paths.sh.tmpl +0 -95
- package/dot_config/shell/05-core-safety.sh.tmpl +0 -13
- package/dot_config/shell/40-ls-colors.sh.tmpl +0 -31
- package/dot_config/shell/50-logic-functions.sh.tmpl +0 -10
- package/dot_config/shell/90-theme-switch.sh +0 -70
- package/dot_config/shell/90-ux-aliases.sh.tmpl +0 -35
- package/dot_config/shell/91-ux-aliases-lazy.sh.tmpl +0 -23
- package/dot_config/shell/Brewfile +0 -207
- package/dot_config/shell/Brewfile.cask +0 -92
- package/dot_config/shell/Brewfile.cli +0 -119
- package/dot_config/shell/README.md +0 -267
- package/dot_config/shell/custom/context_suggest.zsh +0 -68
- package/dot_config/shell/custom/error_analysis.zsh +0 -45
- package/dot_config/sops/dot_sops.yaml +0 -23
- package/dot_config/starship.toml.tmpl +0 -124
- package/dot_config/task/Taskfile.yml +0 -86
- package/dot_config/tflint/tflint.hcl.tmpl +0 -9
- package/dot_config/tmux/tmux.conf.tmpl +0 -181
- package/dot_config/topgrade/topgrade.toml.tmpl +0 -42
- package/dot_config/vscode/extensions.txt +0 -11
- package/dot_config/vscode/settings.json.tmpl +0 -123
- package/dot_config/waybar/style.css +0 -8
- package/dot_config/wezterm/wezterm.lua.tmpl +0 -236
- package/dot_config/wget/wgetrc +0 -12
- package/dot_config/yarn/yarnrc.yml.tmpl +0 -36
- package/dot_config/yazi/yazi.toml +0 -40
- package/dot_config/zellij/config.kdl +0 -79
- package/dot_config/zsh/dot_zprofile +0 -13
- package/dot_config/zsh/dot_zshenv +0 -6
- package/dot_config/zsh/dot_zshrc.tmpl +0 -199
- package/dot_config/zsh/rc.d/05-ssh-agent.zsh +0 -5
- package/dot_config/zsh/rc.d/10-env.zsh.tmpl +0 -28
- package/dot_config/zsh/rc.d/20-zinit.zsh.tmpl +0 -22
- package/dot_config/zsh/rc.d/30-options.zsh.tmpl +0 -123
- package/dot_config/zsh/rc.d/40-bell.zsh.tmpl +0 -20
- package/dot_config/zsh/rc.d/50-login-fortune.zsh.tmpl +0 -9
- package/dot_local/bin/executable_ai_core +0 -130
- package/dot_local/bin/executable_b64 +0 -59
- package/dot_local/bin/executable_dot +0 -178
- package/dot_local/bin/executable_dot_completion +0 -55
- package/dot_local/bin/executable_epoch +0 -62
- package/dot_local/bin/executable_extract +0 -108
- package/dot_local/bin/executable_git-ai-commit +0 -160
- package/dot_local/bin/executable_git-ai-diff +0 -154
- package/dot_local/bin/executable_hash +0 -123
- package/dot_local/bin/executable_hex +0 -79
- package/dot_local/bin/executable_ip +0 -37
- package/dot_local/bin/executable_jsonv +0 -54
- package/dot_local/bin/executable_jwt +0 -78
- package/dot_local/bin/executable_kill-port +0 -59
- package/dot_local/bin/executable_lorem +0 -103
- package/dot_local/bin/executable_regex +0 -96
- package/dot_local/bin/executable_tmux-sessionizer +0 -187
- package/dot_local/bin/executable_tour +0 -137
- package/dot_local/bin/executable_update +0 -108
- package/dot_local/bin/executable_uuid +0 -57
- package/dot_local/bin/executable_yamlv +0 -39
- package/dot_local/bin/executable_zig-install +0 -89
- package/dot_local/bin/voice_ops +0 -7
- package/dot_local/share/bash-completion/completions/dot +0 -54
- package/dot_local/share/zsh/completions/.keep +0 -0
- package/install.sh +0 -255
- package/scripts/ci/validate-ci-config.sh +0 -222
- package/scripts/demo/record.sh +0 -41
- package/scripts/diagnostics/benchmark.sh +0 -201
- package/scripts/diagnostics/doctor.sh +0 -115
- package/scripts/diagnostics/drift-dashboard.sh +0 -26
- package/scripts/diagnostics/health.sh +0 -356
- package/scripts/diagnostics/history-analysis.sh +0 -77
- package/scripts/diagnostics/security-score.sh +0 -392
- package/scripts/dot/commands/appearance.sh +0 -63
- package/scripts/dot/commands/core.sh +0 -130
- package/scripts/dot/commands/diagnostics.sh +0 -100
- package/scripts/dot/commands/meta.sh +0 -117
- package/scripts/dot/commands/restore.sh +0 -209
- package/scripts/dot/commands/secrets.sh +0 -81
- package/scripts/dot/commands/security.sh +0 -73
- package/scripts/dot/commands/tools.sh +0 -228
- package/scripts/dot/lib/utils.sh +0 -72
- package/scripts/fonts/install-nerd-fonts.sh +0 -59
- package/scripts/fonts/patch-fonts.sh +0 -34
- package/scripts/ops/chezmoi-apply.sh +0 -42
- package/scripts/ops/chezmoi-diff.sh +0 -14
- package/scripts/ops/chezmoi-remove.sh +0 -43
- package/scripts/ops/chezmoi-update.sh +0 -16
- package/scripts/ops/heal.sh +0 -466
- package/scripts/ops/health-check.sh +0 -380
- package/scripts/ops/rollback.sh +0 -531
- package/scripts/ops/teleport.sh +0 -32
- package/scripts/secrets/age-init.sh +0 -69
- package/scripts/secrets/create-secrets-file.sh +0 -44
- package/scripts/secrets/encrypt-ssh-key.sh +0 -42
- package/scripts/security/backup.sh +0 -17
- package/scripts/security/dns-doh.sh +0 -29
- package/scripts/security/encryption-check.sh +0 -39
- package/scripts/security/enforce-policies.sh +0 -339
- package/scripts/security/firewall.sh +0 -34
- package/scripts/security/lock-configs.sh +0 -57
- package/scripts/security/lock-screen.sh +0 -33
- package/scripts/security/manage-secrets.sh +0 -415
- package/scripts/security/telemetry-kill.sh +0 -28
- package/scripts/security/usb-safety.sh +0 -29
- package/scripts/tests/README.md +0 -241
- package/scripts/tests/benchmark.sh +0 -91
- package/scripts/tests/framework/assertions.sh +0 -283
- package/scripts/tests/framework/mocks.sh +0 -201
- package/scripts/tests/framework/test_runner.sh +0 -189
- package/scripts/tests/integration/test_install.sh +0 -237
- package/scripts/tests/performance/benchmark_runner.sh +0 -156
- package/scripts/tests/performance/regression_check.sh +0 -73
- package/scripts/tests/performance/stress_test.sh +0 -65
- package/scripts/tests/test-docker.sh +0 -48
- package/scripts/tests/unit/test_ai_aliases.sh +0 -158
- package/scripts/tests/unit/test_ai_cli_checks.sh +0 -47
- package/scripts/tests/unit/test_backup.sh +0 -227
- package/scripts/tests/unit/test_case_functions.sh +0 -238
- package/scripts/tests/unit/test_cd_aliases.sh +0 -367
- package/scripts/tests/unit/test_dot_cli.sh +0 -217
- package/scripts/tests/unit/test_encode64.sh +0 -67
- package/scripts/tests/unit/test_environment.sh +0 -78
- package/scripts/tests/unit/test_extract.sh +0 -163
- package/scripts/tests/unit/test_framework_edge_cases.sh +0 -113
- package/scripts/tests/unit/test_genpass.sh +0 -298
- package/scripts/tests/unit/test_install_edge_cases.sh +0 -167
- package/scripts/tests/unit/test_installers.sh +0 -172
- package/scripts/tests/unit/test_keygen.sh +0 -68
- package/scripts/tests/unit/test_logging.sh +0 -96
- package/scripts/tests/unit/test_os_detection_comprehensive.sh +0 -388
- package/scripts/tests/unit/test_package_managers_comprehensive.sh +0 -321
- package/scripts/tests/unit/test_prependpath.sh +0 -66
- package/scripts/tests/unit/test_prependpath_refactored.sh +0 -89
- package/scripts/tests/unit/test_rd.sh +0 -230
- package/scripts/tests/unit/test_security_fixes.sh +0 -130
- package/scripts/tests/unit/test_security_scripts.sh +0 -87
- package/scripts/tests/unit/test_template_validation.sh +0 -238
- package/scripts/tests/unit/test_utility_functions.sh +0 -144
- package/scripts/tests/unit/test_wave1_alias_split.sh +0 -132
- package/scripts/tests/unit/test_wave1_ci_pinning.sh +0 -61
- package/scripts/tests/unit/test_wave1_gitleaks_config.sh +0 -52
- package/scripts/tests/unit/test_wave1_heal_fixes.sh +0 -97
- package/scripts/tests/unit/test_wave1_install_gpg.sh +0 -35
- package/scripts/tests/unit/test_wave1_zshenv_path.sh +0 -89
- package/scripts/tests/unit/test_wave1_zshrc_lazy_hook.sh +0 -115
- package/scripts/tests/unit/test_wave2_dot_new_guard.sh +0 -75
- package/scripts/tests/unit/test_zipf.sh +0 -76
- package/scripts/theme/apply-gnome-theme.sh +0 -297
- package/scripts/theme/install-boot-logo.sh +0 -61
- package/scripts/theme/install-catppuccin-themes.sh +0 -346
- package/scripts/theme/install-cursors.sh +0 -24
- package/scripts/theme/install-file-icons.sh +0 -25
- package/scripts/theme/install-grub-theme.sh +0 -51
- package/scripts/theme/install-lock-icon.sh +0 -29
- package/scripts/theme/switch.sh +0 -250
- package/scripts/theme/wallpaper-rotate.sh +0 -82
- package/scripts/theme/wallpaper-sync.sh +0 -42
- package/scripts/tools/cmatrix.sh +0 -20
- package/scripts/tools/emoji-picker.sh +0 -45
- package/scripts/tools/figlet-banner.sh +0 -17
- package/scripts/tools/log-rotate.sh +0 -29
- package/scripts/tools/lolcat-wrap.sh +0 -18
- package/scripts/tools/pipes.sh +0 -47
- package/scripts/tuning/linux.sh +0 -175
- package/scripts/tuning/macos.sh +0 -46
- package/templates/projects/molecule/README.md +0 -7
- package/templates/projects/molecule/converge.yml +0 -7
- package/templates/projects/molecule/molecule.yml +0 -16
- package/templates/projects/packer/README.md +0 -15
- 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)
|
package/docs/TROUBLESHOOTING.md
DELETED
|
@@ -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
|