@sebastienrousseau/dotfiles 0.2.481 → 0.2.500
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/CHANGELOG.md +122 -32
- package/LICENSE +1 -1
- package/README.md +211 -242
- package/docs/.vitepress/reports/localization-readability-audit.md +69 -0
- package/docs/AI.md +102 -0
- package/docs/COPYRIGHT +2 -2
- package/docs/NAMING_CONVENTIONS.md +95 -0
- package/docs/README.md +58 -249
- package/docs/adr/ADR-004-cli-architecture.md +2 -2
- package/docs/adr/ADR-006-shell-selection.md +2 -2
- package/docs/adr/ADR-007-multi-shell-parity.md +53 -0
- package/docs/adr/ADR-008-alias-system-architecture.md +85 -0
- package/docs/adr/README.md +2 -3
- package/docs/architecture/ARCHITECTURE.md +113 -0
- package/docs/architecture/INTEROP.md +36 -0
- package/docs/architecture/REPO_LAYOUT.md +237 -0
- package/docs/architecture/WALKTHROUGH.md +82 -0
- package/docs/architecture/fleet-deployment.md +73 -0
- package/docs/archive/EUXIS_2026_REVIEW.md +119 -0
- package/docs/archive/MILESTONE_v0.2.493.md +43 -0
- package/docs/{PLAN.md → archive/PLAN.md} +1 -1
- package/docs/guides/INSTALL.md +140 -0
- package/docs/{NEOVIM_IDE_GUIDE.md → guides/NEOVIM_IDE_GUIDE.md} +12 -12
- package/docs/guides/THEMING.md +222 -0
- package/docs/{TROUBLESHOOTING.md → guides/TROUBLESHOOTING.md} +36 -0
- package/docs/{WSL2_NIX_TROUBLESHOOTING.md → guides/WSL2_NIX_TROUBLESHOOTING.md} +8 -8
- package/docs/index.md +39 -0
- package/docs/interop/A2A.md +32 -0
- package/docs/manual/00-introduction.md +85 -0
- package/docs/manual/01-concepts/01-architecture.md +134 -0
- package/docs/manual/01-concepts/02-trust-model.md +178 -0
- package/docs/manual/01-concepts/03-theme-engine.md +182 -0
- package/docs/manual/01-concepts/04-fleet.md +142 -0
- package/docs/manual/01-concepts/05-self-healing.md +197 -0
- package/docs/manual/02-tutorials/01-first-install.md +192 -0
- package/docs/manual/02-tutorials/02-add-wallpaper.md +211 -0
- package/docs/manual/02-tutorials/03-create-profile.md +238 -0
- package/docs/manual/02-tutorials/04-encrypt-secret.md +275 -0
- package/docs/manual/02-tutorials/05-deploy-fleet.md +279 -0
- package/docs/manual/03-reference/01-dot-cli.md +413 -0
- package/docs/manual/03-reference/02-config-files.md +259 -0
- package/docs/manual/03-reference/03-environment.md +120 -0
- package/docs/manual/03-reference/04-templates.md +184 -0
- package/docs/manual/03-reference/05-feature-flags.md +118 -0
- package/docs/manual/04-cookbook/01-recipes.md +281 -0
- package/docs/manual/04-cookbook/02-troubleshooting.md +319 -0
- package/docs/manual/04-cookbook/03-faq.md +167 -0
- package/docs/manual/05-appendices/A-platform-matrix.md +97 -0
- package/docs/manual/05-appendices/B-security-checklist.md +78 -0
- package/docs/manual/05-appendices/C-glossary.md +36 -0
- package/docs/manual/05-appendices/D-bibliography.md +54 -0
- package/docs/manual/05-appendices/E-license.md +34 -0
- package/docs/manual/_toc.yml +58 -0
- package/docs/manual/command-index.md +58 -0
- package/docs/manual/concept-index.md +164 -0
- package/docs/operations/ATTESTATION.md +39 -0
- package/docs/operations/MAINTENANCE.md +59 -0
- package/docs/operations/MIGRATION.md +101 -0
- package/docs/operations/OPERATIONS.md +164 -0
- package/docs/operations/RELIABILITY.md +116 -0
- package/docs/{ROADMAP.md → operations/ROADMAP.md} +11 -11
- package/docs/operations/TESTING.md +195 -0
- package/docs/operations/TRACEABILITY.md +31 -0
- package/docs/operations/TRUSTED_AGENT_WORKSTATION.md +61 -0
- package/docs/operations/VERSION_SYNC.md +344 -0
- package/docs/{ALIASES.md → reference/ALIASES.md} +2 -6
- package/docs/reference/ALIASES_CHEATSHEET.md +28 -0
- package/docs/reference/ALIASES_DEPRECATIONS.md +9 -0
- package/docs/reference/FEATURES.md +62 -0
- package/docs/reference/FONTS.md +108 -0
- package/docs/reference/PROFILES.md +65 -0
- package/docs/{SCREENSHOTS.md → reference/SCREENSHOTS.md} +26 -25
- package/docs/reference/SCRIPTS.md +67 -0
- package/docs/reference/SUPPORT_MATRIX.md +74 -0
- package/docs/reference/THEMES.md +113 -0
- package/docs/reference/TOOLS.md +105 -0
- package/docs/reference/UTILS.md +151 -0
- package/docs/security/AI_ACT_COMPLIANCE.md +90 -0
- package/docs/security/AUTOMATION_SECRETS.md +22 -0
- package/docs/security/COMPLIANCE.md +453 -0
- package/docs/security/ENCRYPTION.md +52 -0
- package/docs/security/FMEA.md +155 -0
- package/docs/security/INCIDENT_RESPONSE.md +575 -0
- package/docs/security/KEYS.md +45 -0
- package/docs/security/MCP_POLICY.md +69 -0
- package/docs/security/POLICY_RELEASES.md +33 -0
- package/docs/security/README.md +24 -0
- package/docs/security/SECRETS.md +146 -0
- package/docs/security/SECURITY.md +41 -0
- package/docs/security/SECURITY_CHECKLIST.md +44 -0
- package/docs/security/SOUP_REGISTER.md +32 -0
- package/docs/security/THREAT_MODEL.md +120 -0
- package/docs/security/VERIFICATION_VALIDATION.md +224 -0
- package/docs/themes/README.md +3 -17
- package/docs/themes/VISUAL_INTEGRITY_REPORT.md +26 -0
- package/docs/themes/hero-shot.svg +78 -0
- package/dot_config/.module-manifest.json +69 -0
- package/dot_config/ai/identity.md +20 -0
- package/dot_config/ai/patterns/architect.md +14 -0
- package/dot_config/ai/patterns/hardener.md +13 -0
- package/dot_config/ai/patterns/refactor.md +13 -0
- package/dot_config/aider/aider.conf.yml +1 -1
- package/dot_config/alacritty/alacritty.toml.tmpl +41 -469
- package/dot_config/atuin/config.toml +18 -1
- package/dot_config/bat/config +16 -1
- package/dot_config/claude/mcp_servers.json +3 -32
- package/dot_config/dotfiles/agent-card.json +29 -0
- package/dot_config/dotfiles/agent-profiles.json +92 -0
- package/dot_config/dotfiles/boot/README.md +1 -1
- package/dot_config/dotfiles/grub/README.md +1 -1
- package/dot_config/dotfiles/lock/README.md +1 -1
- package/dot_config/dotfiles/mcp-lock.json +33 -0
- package/dot_config/dotfiles/mcp-policy.json +52 -0
- package/dot_config/dotfiles/mcp-registry.json +47 -0
- package/dot_config/dotfiles/model-registry.json +20 -0
- package/dot_config/dotfiles/policy-bundles.json +38 -0
- package/dot_config/dotfiles/prompt-registry.json +16 -0
- package/dot_config/dotfiles/versions.env +18 -0
- package/dot_config/environment.d/50-ssh-agent.conf +2 -0
- package/dot_config/environment.d/90-wayland.conf +19 -0
- package/dot_config/firefox/user.js.tmpl +58 -0
- package/dot_config/fish/completions/dot-theme-sync.fish.tmpl +9 -0
- package/dot_config/fish/completions/dot.fish.tmpl +115 -0
- package/dot_config/fish/conf.d/000-perf-cache.fish +56 -0
- package/dot_config/fish/conf.d/aliases.fish.tmpl +77 -0
- package/dot_config/fish/conf.d/env.fish.tmpl +48 -0
- package/dot_config/fish/conf.d/functions.fish.tmpl +22 -0
- package/dot_config/fish/conf.d/init.fish.tmpl +151 -0
- package/dot_config/fish/config.fish.tmpl +44 -0
- package/dot_config/fish/fish_plugins +1 -0
- package/dot_config/fish/functions/_.fish +3 -0
- package/dot_config/fish/functions/_cached_eval.fish +58 -0
- package/dot_config/fish/functions/als.fish +46 -0
- package/dot_config/fish/functions/bg-upgrade.fish +7 -0
- package/dot_config/fish/functions/c.fish +3 -0
- package/dot_config/fish/functions/cat.fish +9 -0
- package/dot_config/fish/functions/d.fish +7 -0
- package/dot_config/fish/functions/dot.fish +34 -0
- package/dot_config/fish/functions/h.fish +3 -0
- package/dot_config/fish/functions/l.fish +7 -0
- package/dot_config/fish/functions/la.fish +7 -0
- package/dot_config/fish/functions/ll.fish +7 -0
- package/dot_config/fish/functions/log_error.fish +13 -0
- package/dot_config/fish/functions/log_info.fish +13 -0
- package/dot_config/fish/functions/lr.fish +7 -0
- package/dot_config/fish/functions/lra.fish +7 -0
- package/dot_config/fish/functions/ls.fish +7 -0
- package/dot_config/fish/functions/lt.fish +7 -0
- package/dot_config/fish/functions/lta.fish +7 -0
- package/dot_config/fish/functions/notify-run.fish +11 -0
- package/dot_config/fish/functions/q.fish +3 -0
- package/dot_config/fish/functions/silent-run.fish +7 -0
- package/dot_config/fish/functions/yy.fish +8 -0
- package/dot_config/fontconfig/fonts.conf.tmpl +13 -0
- package/dot_config/foot/foot.ini.tmpl +33 -0
- package/dot_config/fuzzel/fuzzel.ini.tmpl +18 -0
- package/dot_config/fzf/fzf.zsh +48 -0
- package/dot_config/ghostty/config.tmpl +69 -565
- package/dot_config/git/allowed_signers.tmpl +18 -0
- package/dot_config/git/commit-template +10 -0
- package/dot_config/gnupg/{gpg-agent.conf.tmpl → gpg-agent.conf} +3 -3
- package/dot_config/goose/config.yaml +2 -2
- package/dot_config/gtk-3.0/gtk.css.tmpl +59 -180
- package/dot_config/gtk-3.0/settings.ini.tmpl +5 -44
- package/dot_config/gtk-4.0/gtk.css.tmpl +79 -136
- package/dot_config/gtk-4.0/settings.ini.tmpl +5 -8
- package/dot_config/ipython/profile_default/ipython_config.py +19 -0
- package/dot_config/just/justfile +18 -0
- package/dot_config/kanshi/config.tmpl +22 -0
- package/dot_config/kitty/kitty.conf.tmpl +44 -508
- package/dot_config/lazygit/config.yml +18 -6
- package/dot_config/mako/config +47 -0
- package/dot_config/micro/settings.json +3 -0
- package/dot_config/mimeapps.list +77 -0
- package/dot_config/mise/config.toml +63 -5
- package/dot_config/mongosh/mongoshrc.js +1 -0
- package/dot_config/mpv/input.conf +47 -0
- package/dot_config/mpv/mpv.conf +47 -0
- package/dot_config/niri/config.kdl.tmpl +327 -0
- package/dot_config/nushell/aliases.nu +18 -0
- package/dot_config/nushell/completions.nu.tmpl +52 -0
- package/dot_config/nushell/config.nu.tmpl +86 -0
- package/dot_config/nushell/env.nu.tmpl +94 -0
- package/dot_config/nushell/functions.nu.tmpl +17 -0
- package/dot_config/nvim/init.lua +14 -0
- package/dot_config/nvim/lazy-lock.json +45 -14
- package/dot_config/nvim/lua/config/autocmds.lua +45 -1
- package/dot_config/nvim/lua/config/keymaps.lua +13 -8
- package/dot_config/nvim/lua/config/lazy.lua +22 -12
- package/dot_config/nvim/lua/config/options.lua +1 -0
- package/dot_config/nvim/lua/plugins/ai.lua +75 -0
- package/dot_config/nvim/lua/plugins/coding.lua +11 -29
- package/dot_config/nvim/lua/plugins/completion.lua +60 -0
- package/dot_config/nvim/lua/plugins/dap.lua +215 -4
- package/dot_config/nvim/lua/plugins/editor.lua +6 -10
- package/dot_config/nvim/lua/plugins/git.lua +1 -0
- package/dot_config/nvim/lua/plugins/lsp.lua +16 -81
- package/dot_config/nvim/lua/plugins/markdown.lua +1 -0
- package/dot_config/nvim/lua/plugins/rust.lua +1 -0
- package/dot_config/nvim/lua/plugins/sessions.lua +1 -0
- package/dot_config/nvim/lua/plugins/ui.lua +23 -51
- package/dot_config/paru/paru.conf +10 -0
- package/dot_config/powershell/Microsoft.PowerShell_profile.ps1.tmpl +81 -0
- package/dot_config/pueue/pueue.yml +34 -0
- package/dot_config/raycast/README.md +1 -1
- package/dot_config/ripgrep/ripgreprc +21 -0
- package/dot_config/shell/00-core-paths.sh.tmpl +62 -24
- package/dot_config/shell/05-core-safety.sh +47 -0
- package/dot_config/shell/10-secrets.sh +40 -0
- package/dot_config/shell/40-fzf-defaults.sh.tmpl +16 -0
- package/dot_config/shell/40-ls-colors.sh +48 -0
- package/dot_config/shell/50-logic-functions-core.sh.tmpl +10 -0
- package/dot_config/shell/51-logic-functions-extra.sh.tmpl +64 -0
- package/dot_config/shell/90-ux-aliases.sh.tmpl +90 -5
- package/dot_config/shell/91-ux-aliases-lazy.sh.tmpl +33 -2
- package/dot_config/shell/Brewfile.cli +8 -0
- package/dot_config/shell/README.md +9 -9
- package/dot_config/shell/als_data.txt.tmpl +65 -0
- package/dot_config/shell/custom/auto_ls.zsh +20 -0
- package/dot_config/shell/custom/context_suggest.zsh +50 -50
- package/dot_config/shell/custom/error_analysis.zsh +29 -29
- package/dot_config/starship.toml.tmpl +85 -7
- package/dot_config/swaylock/config +43 -0
- package/dot_config/systemd/user/dotfiles-maintenance.service +8 -0
- package/dot_config/systemd/user/dotfiles-maintenance.timer +11 -0
- package/dot_config/systemd/user/pueued.service +12 -0
- package/dot_config/systemd/user/ssh-agent.service +12 -0
- package/dot_config/tmux/tmux.conf.tmpl +80 -38
- package/dot_config/topgrade.toml.tmpl +54 -0
- package/dot_config/user-dirs.dirs +9 -0
- package/dot_config/vscode/settings.json.tmpl +9 -50
- package/dot_config/waybar/config.jsonc.tmpl +90 -0
- package/dot_config/waybar/style.css.tmpl +211 -0
- package/dot_config/wezterm/wezterm.lua.tmpl +31 -203
- package/dot_config/xdg-desktop-portal/niri-portals.conf +5 -0
- package/dot_config/yazi/keymap.toml +67 -0
- package/dot_config/yazi/theme.toml +102 -0
- package/dot_config/zathura/zathurarc +52 -0
- package/dot_config/zellij/{config.kdl → config.kdl.tmpl} +1 -1
- package/dot_config/zsh/dot_zprofile +1 -7
- package/dot_config/zsh/dot_zshenv +2 -3
- package/dot_config/zsh/dot_zshrc.tmpl +368 -69
- package/dot_config/zsh/rc.d/00-alias-shims.zsh +77 -0
- package/dot_config/zsh/rc.d/05-ssh-agent.zsh +17 -4
- package/dot_config/zsh/rc.d/10-env.zsh.tmpl +4 -4
- package/dot_config/zsh/rc.d/20-zinit.zsh +65 -0
- package/dot_config/zsh/rc.d/30-options.zsh.tmpl +101 -30
- package/dot_config/zsh/rc.d/99-alias-wrapper.zsh +32 -0
- package/dot_local/bin/__pycache__/executable_dot-load-benchmark-ptycpython-312.pyc +0 -0
- package/dot_local/bin/executable_ai-update +195 -0
- package/dot_local/bin/executable_ai_core +113 -91
- package/dot_local/bin/executable_antigravity +11 -0
- package/dot_local/bin/executable_b64 +61 -36
- package/dot_local/bin/executable_bm +77 -0
- package/dot_local/bin/executable_cb +39 -0
- package/dot_local/bin/executable_dot +543 -132
- package/dot_local/bin/executable_dot-ai +36 -0
- package/dot_local/bin/executable_dot-bootstrap +77 -0
- package/dot_local/bin/executable_dot-launch-or-focus +52 -0
- package/dot_local/bin/executable_dot-load-benchmark +31 -0
- package/dot_local/bin/executable_dot-load-benchmark-pty +77 -0
- package/dot_local/bin/executable_dot-theme-sync +952 -0
- package/dot_local/bin/executable_dot_completion +2 -0
- package/dot_local/bin/executable_dtags +28 -0
- package/dot_local/bin/executable_epoch +43 -38
- package/dot_local/bin/executable_extract +32 -99
- package/dot_local/bin/executable_gbd +52 -0
- package/dot_local/bin/executable_gd +42 -0
- package/dot_local/bin/executable_git-ai-commit +35 -20
- package/dot_local/bin/executable_git-ai-diff +33 -18
- package/dot_local/bin/executable_gl +101 -0
- package/dot_local/bin/executable_hash +56 -18
- package/dot_local/bin/executable_hashsum +160 -0
- package/dot_local/bin/executable_hex +44 -8
- package/dot_local/bin/executable_jsonv +34 -10
- package/dot_local/bin/executable_jwt +22 -6
- package/dot_local/bin/executable_kill-port +18 -2
- package/dot_local/bin/executable_lorem +21 -6
- package/dot_local/bin/executable_mkscript +35 -0
- package/dot_local/bin/executable_monitor +56 -0
- package/dot_local/bin/{executable_ip → executable_myip} +16 -2
- package/dot_local/bin/executable_notify +22 -0
- package/dot_local/bin/executable_open +36 -0
- package/dot_local/bin/executable_pw +27 -0
- package/dot_local/bin/executable_rec-start +46 -0
- package/dot_local/bin/executable_rec-stop +35 -0
- package/dot_local/bin/executable_regex +49 -13
- package/dot_local/bin/executable_start-niri +8 -0
- package/dot_local/bin/executable_tmux-sessionizer +276 -149
- package/dot_local/bin/executable_tour +112 -74
- package/dot_local/bin/executable_up +21 -0
- package/dot_local/bin/executable_update +45 -11
- package/dot_local/bin/executable_uuid +37 -7
- package/dot_local/bin/executable_win +32 -0
- package/dot_local/bin/executable_yamlv +25 -7
- package/dot_local/share/bash-completion/completions/dot +62 -44
- package/dot_local/share/icons/hicolor/128x128/apps/rousseau.png +0 -0
- package/dot_local/share/icons/hicolor/16x16/apps/rousseau.png +0 -0
- package/dot_local/share/icons/hicolor/24x24/apps/rousseau.png +0 -0
- package/dot_local/share/icons/hicolor/256x256/apps/rousseau.png +0 -0
- package/dot_local/share/icons/hicolor/32x32/apps/rousseau.png +0 -0
- package/dot_local/share/icons/hicolor/48x48/apps/rousseau.png +0 -0
- package/dot_local/share/icons/hicolor/512x512/apps/rousseau.png +0 -0
- package/dot_local/share/icons/hicolor/64x64/apps/rousseau.png +0 -0
- package/dot_local/share/icons/hicolor/96x96/apps/rousseau.png +0 -0
- package/dot_local/share/icons/hicolor/scalable/apps/rousseau.png +0 -0
- package/dot_local/share/man/man1/dot.1 +149 -0
- package/dot_local/share/mise/plugins/kiro-cli/bin/executable_download +64 -0
- package/dot_local/share/mise/plugins/kiro-cli/bin/executable_install +18 -0
- package/dot_local/share/mise/plugins/kiro-cli/bin/executable_list-all +13 -0
- package/dot_local/share/wayland-sessions/niri.desktop.tmpl +6 -0
- package/dot_local/share/zsh/completions/_dot +283 -0
- package/install.sh +297 -210
- package/package.json +17 -5
- package/scripts/ci/check-copyright-headers.sh +96 -0
- package/scripts/ci/guard-gitleaks-checkout.sh +57 -0
- package/scripts/ci/install-chezmoi-verified.sh +64 -0
- package/scripts/ci/validate-ci-config.sh +41 -39
- package/scripts/demo/record.sh +3 -2
- package/scripts/diagnostics/a2a-conformance.sh +162 -0
- package/scripts/diagnostics/alias-governance.sh +137 -0
- package/scripts/diagnostics/aliases-cheatsheet.sh +73 -0
- package/scripts/diagnostics/aliases-manifest.sh +31 -0
- package/scripts/diagnostics/benchmark.sh +209 -29
- package/scripts/diagnostics/conflicts.sh +72 -0
- package/scripts/diagnostics/doctor-unified.sh +38 -0
- package/scripts/diagnostics/doctor.sh +491 -65
- package/scripts/diagnostics/drift-dashboard.sh +17 -6
- package/scripts/diagnostics/health.sh +351 -110
- package/scripts/diagnostics/history-analysis.sh +12 -4
- package/scripts/diagnostics/mcp-doctor.sh +575 -0
- package/scripts/diagnostics/perf.sh +225 -0
- package/scripts/diagnostics/scorecard.sh +118 -0
- package/scripts/diagnostics/secret-governance.sh +58 -0
- package/scripts/diagnostics/security-score.sh +139 -93
- package/scripts/diagnostics/smoke-test.sh +87 -0
- package/scripts/diagnostics/snapshot.sh +89 -0
- package/scripts/diagnostics/verify.sh +107 -0
- package/scripts/diagnostics/verify_state.sh +2 -2
- package/scripts/diagnostics/version-locks.sh +79 -0
- package/scripts/diagnostics/workstation-attestation.sh +181 -0
- package/scripts/docs/build-manual.sh +883 -0
- package/scripts/docs/check-manual.sh +213 -0
- package/scripts/dot/commands/agent.sh +465 -0
- package/scripts/dot/commands/ai.sh +416 -0
- package/scripts/dot/commands/aliases.sh +250 -0
- package/scripts/dot/commands/appearance.sh +21 -4
- package/scripts/dot/commands/core.sh +59 -4
- package/scripts/dot/commands/diagnostics.sh +132 -3
- package/scripts/dot/commands/fleet.sh +399 -0
- package/scripts/dot/commands/lint.sh +177 -0
- package/scripts/dot/commands/manual.sh +168 -0
- package/scripts/dot/commands/meta.sh +148 -17
- package/scripts/dot/commands/patterns.sh +54 -0
- package/scripts/dot/commands/restore.sh +57 -35
- package/scripts/dot/commands/secrets.sh +151 -9
- package/scripts/dot/commands/security.sh +3 -0
- package/scripts/dot/commands/tools.sh +268 -27
- package/scripts/dot/data/alias-deprecations.tsv +2 -0
- package/scripts/dot/lib/bento.sh +49 -0
- package/scripts/dot/lib/log.sh +194 -0
- package/scripts/dot/lib/platform.sh +98 -0
- package/scripts/dot/lib/ui.sh +507 -0
- package/scripts/dot/lib/utils.sh +318 -18
- package/scripts/fonts/install-nerd-fonts.sh +19 -10
- package/scripts/fonts/patch-fonts.sh +1 -0
- package/scripts/git-hooks/install.sh +11 -0
- package/scripts/git-hooks/pre-commit +12 -0
- package/scripts/git-hooks/pre-commit-audit.sh +145 -0
- package/scripts/git-hooks/pre-push +29 -0
- package/scripts/git-hooks/prepare-commit-msg +29 -0
- package/scripts/lib/secrets_provider.sh +158 -0
- package/scripts/maintenance/check-updates.sh +131 -0
- package/scripts/ops/ai-setup.sh +55 -0
- package/scripts/ops/bundle.sh +77 -0
- package/scripts/ops/chaos.sh +49 -0
- package/scripts/ops/chezmoi-apply.sh +245 -17
- package/scripts/ops/chezmoi-diff.sh +1 -0
- package/scripts/ops/chezmoi-remove.sh +2 -0
- package/scripts/ops/chezmoi-update.sh +34 -2
- package/scripts/ops/heal-chezmoi.sh +51 -0
- package/scripts/ops/heal-system.sh +128 -0
- package/scripts/ops/heal-tools.sh +340 -0
- package/scripts/ops/heal.sh +98 -342
- package/scripts/ops/post-apply-repair.sh +106 -0
- package/scripts/ops/prewarm.sh +127 -0
- package/scripts/ops/release.sh +252 -0
- package/scripts/ops/rollback.sh +86 -28
- package/scripts/ops/setup.sh +137 -0
- package/scripts/ops/teleport.sh +2 -1
- package/scripts/qa/coverage-baseline.sh +60 -0
- package/scripts/qa/docs-coverage.sh +111 -0
- package/scripts/qa/reliability-audit.sh +138 -0
- package/scripts/qa/traceability-coverage.sh +116 -0
- package/scripts/qa/validate-examples.sh +26 -0
- package/scripts/qa/wsl-contract.sh +11 -0
- package/scripts/release/package-policy-bundles.sh +125 -0
- package/scripts/secrets/age-init.sh +1 -0
- package/scripts/secrets/create-secrets-file.sh +1 -0
- package/scripts/secrets/encrypt-ssh-key.sh +1 -0
- package/scripts/security/backup.sh +44 -4
- package/scripts/security/dns-doh.sh +36 -14
- package/scripts/security/encryption-check.sh +27 -12
- package/scripts/security/enforce-policies.sh +11 -16
- package/scripts/security/firewall.sh +76 -20
- package/scripts/security/lock-configs.sh +2 -2
- package/scripts/security/lock-screen.sh +40 -18
- package/scripts/security/manage-secrets.sh +42 -29
- package/scripts/security/ssh-cert.sh +203 -0
- package/scripts/security/telemetry-kill.sh +40 -18
- package/scripts/security/usb-safety.sh +37 -15
- package/scripts/theme/apply-gnome-theme.sh +87 -56
- package/scripts/theme/extract-theme.py +677 -0
- package/scripts/theme/install-boot-logo.sh +1 -0
- package/scripts/theme/install-catppuccin-themes.sh +57 -33
- package/scripts/theme/install-cursors.sh +1 -0
- package/scripts/theme/install-file-icons.sh +1 -0
- package/scripts/theme/install-grub-theme.sh +11 -1
- package/scripts/theme/install-lock-icon.sh +1 -0
- package/scripts/theme/merge-wallpaper.sh +141 -0
- package/scripts/theme/rebuild-themes.sh +309 -0
- package/scripts/theme/switch.sh +308 -137
- package/scripts/theme/wallpaper-rotate.sh +66 -12
- package/scripts/theme/wallpaper-sync.sh +386 -31
- package/scripts/tools/cmatrix.sh +1 -0
- package/scripts/tools/detect-collisions.py +1 -1
- package/scripts/tools/emoji-picker.sh +4 -1
- package/scripts/tools/figlet-banner.sh +1 -0
- package/scripts/tools/log-rotate.sh +2 -1
- package/scripts/tools/lolcat-wrap.sh +1 -0
- package/scripts/tools/pipes.sh +1 -0
- package/scripts/tuning/linux.sh +23 -13
- package/scripts/tuning/macos.sh +13 -4
- package/scripts/uninstall.sh +85 -0
- package/scripts/version-sync.sh +487 -0
- package/templates/chezmoi-data/geekom-a9.toml.example +21 -0
- package/templates/chezmoi-data/mac-m1.toml.example +16 -0
- package/templates/chezmoi-data/mac-t2-linux.toml.example +21 -0
- package/templates/chezmoi-data/surface-pro-7p.toml.example +21 -0
- package/templates/projects/go/.github/workflows/ci.yml +31 -0
- package/templates/projects/go/README.md +1 -1
- package/templates/projects/go/cmd/__PROJECT_NAME__/main.go +1 -0
- package/templates/projects/go/go.sum +0 -0
- package/templates/projects/molecule/README.md +1 -1
- package/templates/projects/node/.github/workflows/ci.yml +30 -0
- package/templates/projects/node/README.md +1 -1
- package/templates/projects/node/package-lock.json +12 -0
- package/templates/projects/node/src/index.js +1 -0
- package/templates/projects/packer/README.md +1 -1
- package/templates/projects/python/.github/workflows/ci.yml +34 -0
- package/templates/projects/python/README.md +1 -1
- package/templates/projects/python/src/__PROJECT_NAME__/__init__.py +1 -0
- package/templates/projects/python/tests/test_basic.py +1 -0
- package/docs/ARCHITECTURE.md +0 -229
- package/docs/COMPLIANCE.md +0 -47
- 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/OPERATIONS.md +0 -130
- package/docs/PR_DESCRIPTION.md +0 -149
- package/docs/SECRETS.md +0 -76
- package/docs/SECURITY.md +0 -30
- package/docs/SECURITY_CHECKLIST.md +0 -25
- package/docs/TASK.md +0 -99
- package/docs/TESTING.md +0 -190
- package/docs/TOOLS.md +0 -146
- package/docs/UTILS.md +0 -105
- package/docs/WALKTHROUGH.md +0 -165
- package/dot_config/clippy.toml +0 -55
- package/dot_config/dotfiles/versions.env.tmpl +0 -19
- package/dot_config/firefox/user.js +0 -8
- package/dot_config/git/config.tmpl +0 -77
- package/dot_config/go/aliases.sh +0 -61
- package/dot_config/go/env.sh +0 -24
- package/dot_config/ice/README.md +0 -13
- package/dot_config/ipython/profile_default/ipython_config.py.tmpl +0 -5
- package/dot_config/lsd/config.yaml +0 -19
- package/dot_config/nvim/snippets/all.lua +0 -9
- package/dot_config/nvim/snippets/python.lua +0 -16
- package/dot_config/shell/00-container-detect.sh +0 -53
- 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/90-theme-switch.sh +0 -70
- package/dot_config/topgrade/topgrade.toml.tmpl +0 -42
- package/dot_config/waybar/style.css +0 -8
- package/dot_config/zsh/rc.d/20-zinit.zsh.tmpl +0 -22
- package/dot_local/bin/executable_zig-install +0 -89
- package/dot_local/bin/voice_ops +0 -7
- package/scripts/ops/health-check.sh +0 -380
- 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-aliases.sh +0 -25
- 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/docs/{LEGACY_ROADMAP.md → archive/LEGACY_ROADMAP.md} +0 -0
- /package/docs/{REPO_AUDIT.md → archive/REPO_AUDIT.md} +0 -0
- /package/docs/{KEY_ROTATION.md → security/KEY_ROTATION.md} +0 -0
- /package/dot_config/ansible/{ansible.cfg.tmpl → ansible.cfg} +0 -0
- /package/dot_config/docker/{config.json.tmpl → config.json} +0 -0
- /package/dot_config/k9s/{config.yaml.tmpl → config.yaml} +0 -0
- /package/dot_config/pypoetry/{config.toml.tmpl → config.toml} +0 -0
- /package/dot_config/{pyrightconfig.json.tmpl → pyrightconfig.json} +0 -0
- /package/dot_config/tflint/{tflint.hcl.tmpl → tflint.hcl} +0 -0
- /package/dot_config/yarn/{yarnrc.yml.tmpl → yarnrc.yml} +0 -0
- /package/dot_config/zsh/rc.d/{40-bell.zsh.tmpl → 40-bell.zsh} +0 -0
- /package/dot_config/zsh/rc.d/{50-login-fortune.zsh.tmpl → 50-login-fortune.zsh} +0 -0
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
# Security Release Checklist
|
|
2
|
-
|
|
3
|
-
Use this checklist before cutting any new release (e.g., `v0.x.x`) to ensure supply-chain integrity.
|
|
4
|
-
|
|
5
|
-
## 1. Supply Chain & Installer
|
|
6
|
-
- [ ] **Pinned Version**: Update `install.sh` `VERSION` variable to match the release tag.
|
|
7
|
-
- [ ] **Docs Sync**: Ensure `README.md` and `.github/PULL_REQUEST_TEMPLATE.md` installer URLs point to the new tag (not `main`).
|
|
8
|
-
- [ ] **Clean Build**: Verify `install.sh` does not curl random scripts from third parties without pinning.
|
|
9
|
-
|
|
10
|
-
## 2. Secrets & Leak Prevention
|
|
11
|
-
- [ ] **SSH Keys**: Scan `dot_ssh/` to ensure no private keys (`id_rsa`, `id_ed25519`) are committed.
|
|
12
|
-
- [ ] **Env Vars**: Check for hardcoded API tokens in `dot_config/` (use `age` encryption or environment variables instead).
|
|
13
|
-
- [ ] **Git History**: Run `git secrets` or similar to scan for accidental commits of credentials.
|
|
14
|
-
|
|
15
|
-
## 3. Platform Safety
|
|
16
|
-
- [ ] **WSL Check**: Verify `install.sh` detects WSL and does not try to install systemd services or macOS defaults.
|
|
17
|
-
- [ ] **Root usage**: Ensure no script requires `sudo` unnecessarily (Principle of Least Privilege).
|
|
18
|
-
|
|
19
|
-
## 4. Toolchain
|
|
20
|
-
- [ ] **Binary Integrity**: Check that `dot_local/bin/` scripts are pure shell/executable and match expected checksums (no binary blobs).
|
|
21
|
-
- [ ] **Dependency Scan**: Run `npm audit` / `cargo audit` if applicable (currently Node.js legacy is removed).
|
|
22
|
-
|
|
23
|
-
## 5. Final Verification
|
|
24
|
-
- [ ] **Docker Test**: Run `docker build -f Dockerfile.test .` to verify clean install.
|
|
25
|
-
- [ ] **Doctor**: Run `dot doctor` locally.
|
package/docs/TASK.md
DELETED
|
@@ -1,99 +0,0 @@
|
|
|
1
|
-
# Debugging Universal Config
|
|
2
|
-
|
|
3
|
-
... [Completed Phases 2-16 Unchanged] ...
|
|
4
|
-
|
|
5
|
-
# Phase 16: Final Release Verification
|
|
6
|
-
- [x] **Benchmark**: Verify startup <20ms <!-- id: 84 -->
|
|
7
|
-
- [x] **Templates**: Verify syntax validity <!-- id: 85 -->
|
|
8
|
-
- [x] **PR Update**: Set final title and description <!-- id: 86 -->
|
|
9
|
-
|
|
10
|
-
# Phase 17: Structural Optimizations
|
|
11
|
-
- [x] **Semantic Organization**: Rename `dot_config/dotfiles` to `dot_config/shell` <!-- id: 87 -->
|
|
12
|
-
- [x] **Script Installation**: Move `bin` to `dot_local/bin` <!-- id: 88 -->
|
|
13
|
-
- [x] **Cleanup**: Remove `Makefile` and `package.json` <!-- id: 89 -->
|
|
14
|
-
- [x] **Segregation**: Split install scripts by OS <!-- id: 90 -->
|
|
15
|
-
- [x] **Verify Structure**: Ensure templates render correctly <!-- id: 91 -->
|
|
16
|
-
- [x] **Update Documentation**: Overhaul `README.md` for accuracy, logic, and modern tool examples <!-- id: 92 -->
|
|
17
|
-
- [x] **Component READMEs**: Verified and updated `go`, `archives`, `cd`, `gcloud`, `mkdir`, `modern`. <!-- id: 105 -->
|
|
18
|
-
|
|
19
|
-
# Phase 18: Component Documentation Polish
|
|
20
|
-
- [x] **Aliases**: Update `aliases/README.md` with `chezmoi` usage <!-- id: 93 -->
|
|
21
|
-
- [x] **Functions**: Update `functions/README.md` removing legacy install steps <!-- id: 94 -->
|
|
22
|
-
- [x] **Paths**: Update `paths/README.md` correcting filenames and logic <!-- id: 95 -->
|
|
23
|
-
- [x] **Cleanup**: Fix broken HTML artifacts in alias READMEs (Deep Clean) <!-- id: 96 -->
|
|
24
|
-
- [x] **Cleanup**: Fix broken HTML artifacts in alias READMEs (Deep Clean) <!-- id: 96 -->
|
|
25
|
-
|
|
26
|
-
# Phase 19: Toolchain Expansion
|
|
27
|
-
- [x] **Kubernetes**: Add `kubectl`, `helm`, `k9s` aliases <!-- id: 97 -->
|
|
28
|
-
- [x] **IaC**: Add `terraform`, `ansible` aliases <!-- id: 98 -->
|
|
29
|
-
- [x] **Languages**: Add `go`, `yarn`, `uv` aliases <!-- id: 99 -->
|
|
30
|
-
- [x] **Diagnostics**: Add `jq`, `yq`, `nc` aliases <!-- id: 100 -->
|
|
31
|
-
|
|
32
|
-
# Phase 20: Intelligent Assistance
|
|
33
|
-
- [x] **AI**: Add `gh copilot` / AI aliases <!-- id: 101 -->
|
|
34
|
-
- [x] **Smart Help**: Create `dothelp` function <!-- id: 102 -->
|
|
35
|
-
|
|
36
|
-
# Phase 22: Automated Testing
|
|
37
|
-
- [x] **Docker CI**: Add Linux container install test <!-- id: 103 -->
|
|
38
|
-
- [x] **Integration**: Verify aliases load correctly <!-- id: 104 -->
|
|
39
|
-
# Phase 92: Legal & Licensing
|
|
40
|
-
- [x] **FOSSology**: Add license scanning aliases (`scan-licenses`) <!-- id: 111 -->
|
|
41
|
-
- [x] **Headers**: Add copyright header automation (`add-headers`) <!-- id: 112 -->
|
|
42
|
-
- [x] **CLA**: Add CLA check aliases (`check-cla`) <!-- id: 113 -->
|
|
43
|
-
- [x] **Notice**: Add attribution generation (`gen-notice`) <!-- id: 114 -->
|
|
44
|
-
|
|
45
|
-
# Pull Request (v0.2.480)
|
|
46
|
-
- [x] Commit and push changes <!-- id: 17 -->
|
|
47
|
-
- [x] Update Pull Request (Completed via gh CLI) <!-- id: 18 -->
|
|
48
|
-
- [x] **Verify PR Content**: Confirmed title and description on GitHub <!-- id: 67 -->
|
|
49
|
-
|
|
50
|
-
# Phase 23: Enterprise Core & Security (The Trust Layer)
|
|
51
|
-
- [x] **SLSA & SBOM**: Create release workflow for provenance/SBOM <!-- id: 116 -->
|
|
52
|
-
- [x] **Signing**: Add aliases for Git GPG/SSH signing configuration (`enable-signing`) <!-- id: 117 -->
|
|
53
|
-
- [x] **Immutability**: Create script to lock/unlock critical files (`lock-configs`) <!-- id: 118 -->
|
|
54
|
-
|
|
55
|
-
# Phase 27: Self-Healing & Diagnostics
|
|
56
|
-
- [x] **Health Checks**: Create `dot doctor` script (`scripts/diagnostics/doctor.sh`) <!-- id: 121 -->
|
|
57
|
-
- [x] **Drift Detection**: Add `dot drift` alias for `chezmoi verify` <!-- id: 122 -->
|
|
58
|
-
- [x] **Auto-Repair**: Add `dot heal` alias for interactive repair <!-- id: 123 -->
|
|
59
|
-
|
|
60
|
-
# Phase 51: Regulatory Compliance
|
|
61
|
-
- [x] **SOC2/ISO**: Create `COMPLIANCE.md` mapping controls to dotfiles features <!-- id: 124 -->
|
|
62
|
-
- [x] **Privacy Mode**: Create `privacy-mode` alias (telemetry disabling) <!-- id: 125 -->
|
|
63
|
-
- [x] **Audit**: Create `dot audit` alias to view compliance logs <!-- id: 126 -->
|
|
64
|
-
|
|
65
|
-
# Phase 54: macOS Deep Integration
|
|
66
|
-
- [x] **Defaults**: Create `run_onchange_darwin_defaults.sh.tmpl` for system hardening <!-- id: 127 -->
|
|
67
|
-
- [x] **Brewfile**: Enforce strict bundle verification <!-- id: 128 -->
|
|
68
|
-
|
|
69
|
-
# Phase 59: Font Typography
|
|
70
|
-
- [x] **Nerd Fonts**: Create `run_onchange_install_fonts.sh.tmpl` to install JetBrainsMono/Symbols <!-- id: 129 -->
|
|
71
|
-
- [x] **Fontconfig**: Create `dot_config/fontconfig/fonts.conf.tmpl` for Linux rendering <!-- id: 130 -->
|
|
72
|
-
- [x] **Aliases**: Add `update-fonts` alias <!-- id: 131 -->
|
|
73
|
-
|
|
74
|
-
# Phase 26: OS Bundling & Compliance
|
|
75
|
-
- [x] **XDG**: Audit and enforce XDG Base Directory variables <!-- id: 132 -->
|
|
76
|
-
- [x] **Vendor Hooks**: Implement `/etc/dotfiles/defaults.d` sourcing in shell init <!-- id: 133 -->
|
|
77
|
-
- [x] **Bundling**: Create `scripts/core/package.sh` to generate release artifacts (.tar.gz, .deb structure) <!-- id: 134 -->
|
|
78
|
-
|
|
79
|
-
# Phase 24: The Universal Installer (Zero-Dependency)
|
|
80
|
-
- [x] **Installer**: Create `install.sh` (Zero-dep, TUI-like bootstrap) <!-- id: 135 -->
|
|
81
|
-
- [x] **Teleport**: Create `scripts/ops/teleport.sh` to push config to remote hosts <!-- id: 136 -->
|
|
82
|
-
- [x] **Aliases**: Add `dot install` and `dot teleport` aliases <!-- id: 137 -->
|
|
83
|
-
|
|
84
|
-
# Post-Release Hotfixes
|
|
85
|
-
- [x] **Codacy**: Fix linting in `detect-collisions.py` (Round 1) <!-- id: 106 -->
|
|
86
|
-
- [x] **Codacy**: Fix linting in `modern.aliases.sh`, `pipx.paths.sh`, and `detect-collisions.py` (Round 2) <!-- id: 120 -->
|
|
87
|
-
- [x] **Roadmap**: Rewrite full 100-phase roadmap <!-- id: 107 -->
|
|
88
|
-
- [x] **Zinit**: Fix bootstrap and valid Zsh sourcing <!-- id: 108 -->
|
|
89
|
-
- [x] **Vim**: Fix install script robustness <!-- id: 109 -->
|
|
90
|
-
- [x] **Pipx**: Fix "space in path" warning via explicit XDG vars <!-- id: 110 -->
|
|
91
|
-
- [x] **Aliases**: Removed broken `dotfiles_history` alias <!-- id: 115 -->
|
|
92
|
-
- [x] **Security**: Full Phase 23 implementation (SLSA, Signing, Locks) <!-- id: 119 -->
|
|
93
|
-
|
|
94
|
-
# Chezmoi Migration
|
|
95
|
-
- [x] Verify `chezmoi` installation <!-- id: 12 -->
|
|
96
|
-
- [x] Initialize `chezmoi` and create plan <!-- id: 13 -->
|
|
97
|
-
- [x] Migrate key config files (`.zshrc`, etc.) to `chezmoi` <!-- id: 14 -->
|
|
98
|
-
- [x] Create cross-platform templates (Mac/Linux/Windows) <!-- id: 15 -->
|
|
99
|
-
- [x] Verify `chezmoi apply` locally <!-- id: 16 -->
|
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/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
|