@sebastienrousseau/dotfiles 0.2.499 → 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 +375 -0
- package/LICENSE +1283 -0
- package/README.md +284 -0
- package/docs/.vitepress/reports/localization-readability-audit.md +69 -0
- package/docs/AI.md +102 -0
- package/docs/COPYRIGHT +4 -3
- package/docs/NAMING_CONVENTIONS.md +95 -0
- package/docs/README.md +78 -0
- package/docs/adr/ADR-001-ci-cd-pipeline.md +101 -0
- package/docs/adr/ADR-002-shell-performance.md +121 -0
- package/docs/adr/ADR-003-security-first.md +140 -0
- package/docs/adr/ADR-004-cli-architecture.md +157 -0
- package/docs/adr/ADR-005-chezmoi-choice.md +89 -0
- package/docs/adr/ADR-006-shell-selection.md +115 -0
- 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 +32 -0
- 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/LEGACY_ROADMAP.md +142 -0
- package/docs/archive/MILESTONE_v0.2.493.md +43 -0
- package/docs/{PLAN.md → archive/PLAN.md} +4 -4
- package/docs/archive/REPO_AUDIT.md +23 -0
- package/docs/guides/INSTALL.md +140 -0
- package/docs/guides/NEOVIM_IDE_GUIDE.md +52 -0
- package/docs/guides/THEMING.md +222 -0
- package/docs/guides/TROUBLESHOOTING.md +148 -0
- package/docs/guides/WSL2_NIX_TROUBLESHOOTING.md +723 -0
- 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} +22 -22
- 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/reference/ALIASES.md +124 -0
- 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/reference/SCREENSHOTS.md +117 -0
- 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/KEY_ROTATION.md +219 -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 +6 -0
- 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 +32 -0
- package/dot_config/alacritty/alacritty.toml.tmpl +55 -0
- package/dot_config/ansible/ansible.cfg +11 -0
- package/dot_config/atuin/config.toml +40 -0
- package/dot_config/bat/config +23 -0
- package/dot_config/brave-flags.conf.tmpl +7 -0
- package/dot_config/btop/btop.conf +16 -0
- package/dot_config/btop/themes/tokyonight.theme +34 -0
- package/dot_config/bun/bunfig.toml.tmpl +33 -0
- package/dot_config/claude/mcp_servers.json +20 -0
- package/dot_config/containers/containers.conf +14 -0
- package/dot_config/curl/dot_curlrc +18 -0
- package/dot_config/dlv/config.yml +39 -0
- package/dot_config/docker/config.json +15 -0
- 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 +11 -0
- package/dot_config/dotfiles/grub/README.md +11 -0
- package/dot_config/dotfiles/lock/README.md +11 -0
- 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/duf/duf.conf +6 -0
- package/dot_config/duti/defaults.duti +5 -0
- package/dot_config/emoji/emoji.txt +34 -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/fastfetch/config.jsonc +28 -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/flatpak/flatpak.list +4 -0
- package/dot_config/fontconfig/fonts.conf.tmpl +57 -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/gem/gemrc +9 -0
- package/dot_config/gh/config.yml +12 -0
- package/dot_config/ghostty/config.tmpl +165 -0
- package/dot_config/git/allowed_signers.tmpl +18 -0
- package/dot_config/git/attributes +12 -0
- package/dot_config/git/commit-template +10 -0
- package/dot_config/git/ignore +27 -0
- package/dot_config/gnupg/gpg-agent.conf +11 -0
- package/dot_config/go/golangci.yml +118 -0
- package/dot_config/go/gopls.json +30 -0
- package/dot_config/goose/config.yaml +29 -0
- package/dot_config/gtk-3.0/gtk.css.tmpl +184 -0
- package/dot_config/gtk-3.0/settings.ini.tmpl +27 -0
- package/dot_config/gtk-4.0/gtk.css.tmpl +252 -0
- package/dot_config/gtk-4.0/settings.ini.tmpl +18 -0
- package/dot_config/htop/htoprc +20 -0
- package/dot_config/inputrc +2 -0
- package/dot_config/ipython/profile_default/ipython_config.py +19 -0
- package/dot_config/just/justfile +122 -0
- package/dot_config/k9s/config.yaml +65 -0
- package/dot_config/k9s/skins/catppuccin-mocha.yaml +116 -0
- package/dot_config/kanshi/config.tmpl +22 -0
- package/dot_config/karabiner/karabiner.json +14 -0
- package/dot_config/kitty/kitty.conf.tmpl +53 -0
- package/dot_config/lazydocker/config.yml +186 -0
- package/dot_config/lazygit/config.yml +35 -0
- package/dot_config/mako/config +47 -0
- package/dot_config/mas/masapps.txt +5 -0
- package/dot_config/micro/settings.json +3 -0
- package/dot_config/mimeapps.list +77 -0
- package/dot_config/minikube/config.json +13 -0
- package/dot_config/mise/config.toml +99 -0
- package/dot_config/mongosh/mongoshrc.js +68 -0
- package/dot_config/mpv/input.conf +47 -0
- package/dot_config/mpv/mpv.conf +47 -0
- package/dot_config/mycli/myclirc +67 -0
- package/dot_config/nano/nanorc +28 -0
- package/dot_config/ncdu/config +12 -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 +18 -0
- package/dot_config/nvim/lazy-lock.json +58 -0
- package/dot_config/nvim/lua/config/autocmds.lua +107 -0
- package/dot_config/nvim/lua/config/keymaps.lua +92 -0
- package/dot_config/nvim/lua/config/lazy.lua +44 -0
- package/dot_config/nvim/lua/config/options.lua +49 -0
- package/dot_config/nvim/lua/plugins/ai.lua +75 -0
- package/dot_config/nvim/lua/plugins/coding.lua +216 -0
- package/dot_config/nvim/lua/plugins/completion.lua +60 -0
- package/dot_config/nvim/lua/plugins/dap.lua +412 -0
- package/dot_config/nvim/lua/plugins/editor.lua +55 -0
- package/dot_config/nvim/lua/plugins/git.lua +10 -0
- package/dot_config/nvim/lua/plugins/lsp.lua +156 -0
- package/dot_config/nvim/lua/plugins/markdown.lua +18 -0
- package/dot_config/nvim/lua/plugins/rust.lua +34 -0
- package/dot_config/nvim/lua/plugins/sessions.lua +33 -0
- package/dot_config/nvim/lua/plugins/ui.lua +509 -0
- package/dot_config/paru/paru.conf +10 -0
- package/dot_config/pip/pip.conf.tmpl +32 -0
- package/dot_config/powershell/Microsoft.PowerShell_profile.ps1.tmpl +81 -0
- package/dot_config/pueue/pueue.yml +34 -0
- package/dot_config/pypoetry/config.toml +6 -0
- package/dot_config/pyrightconfig.json +5 -0
- package/dot_config/raycast/README.md +13 -0
- package/dot_config/redis/redisclirc +41 -0
- package/dot_config/ripgrep/ripgreprc +21 -0
- package/dot_config/shell/00-core-paths.sh.tmpl +133 -0
- 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/50-logic-functions.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 +120 -0
- package/dot_config/shell/91-ux-aliases-lazy.sh.tmpl +54 -0
- package/dot_config/shell/Brewfile +207 -0
- package/dot_config/shell/Brewfile.cask +92 -0
- package/dot_config/shell/Brewfile.cli +127 -0
- package/dot_config/shell/README.md +267 -0
- 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 +68 -0
- package/dot_config/shell/custom/error_analysis.zsh +45 -0
- package/dot_config/sops/dot_sops.yaml +23 -0
- package/dot_config/starship.toml.tmpl +202 -0
- 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/task/Taskfile.yml +86 -0
- package/dot_config/tflint/tflint.hcl +9 -0
- package/dot_config/tmux/tmux.conf.tmpl +223 -0
- package/dot_config/topgrade.toml.tmpl +54 -0
- package/dot_config/user-dirs.dirs +9 -0
- package/dot_config/vscode/extensions.txt +11 -0
- package/dot_config/vscode/settings.json.tmpl +82 -0
- 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 +64 -0
- package/dot_config/wget/wgetrc +12 -0
- package/dot_config/xdg-desktop-portal/niri-portals.conf +5 -0
- package/dot_config/yarn/yarnrc.yml +36 -0
- package/dot_config/yazi/keymap.toml +67 -0
- package/dot_config/yazi/theme.toml +102 -0
- package/dot_config/yazi/yazi.toml +40 -0
- package/dot_config/zathura/zathurarc +52 -0
- package/dot_config/zellij/config.kdl.tmpl +79 -0
- package/dot_config/zsh/dot_zprofile +7 -0
- package/dot_config/zsh/dot_zshenv +5 -0
- package/dot_config/zsh/dot_zshrc.tmpl +498 -0
- package/dot_config/zsh/rc.d/00-alias-shims.zsh +77 -0
- package/dot_config/zsh/rc.d/05-ssh-agent.zsh +18 -0
- package/dot_config/zsh/rc.d/10-env.zsh.tmpl +28 -0
- package/dot_config/zsh/rc.d/20-zinit.zsh +65 -0
- package/dot_config/zsh/rc.d/30-options.zsh.tmpl +194 -0
- package/dot_config/zsh/rc.d/40-bell.zsh +20 -0
- package/dot_config/zsh/rc.d/50-login-fortune.zsh +9 -0
- 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 +152 -0
- package/dot_local/bin/executable_antigravity +11 -0
- package/dot_local/bin/executable_b64 +84 -0
- package/dot_local/bin/executable_bm +77 -0
- package/dot_local/bin/executable_cb +39 -0
- package/dot_local/bin/executable_dot +589 -0
- 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 +57 -0
- package/dot_local/bin/executable_dtags +28 -0
- package/dot_local/bin/executable_epoch +67 -0
- package/dot_local/bin/executable_extract +41 -0
- package/dot_local/bin/executable_gbd +52 -0
- package/dot_local/bin/executable_gd +42 -0
- package/dot_local/bin/executable_git-ai-commit +175 -0
- package/dot_local/bin/executable_git-ai-diff +169 -0
- package/dot_local/bin/executable_gl +101 -0
- package/dot_local/bin/executable_hash +161 -0
- package/dot_local/bin/executable_hashsum +160 -0
- package/dot_local/bin/executable_hex +115 -0
- package/dot_local/bin/executable_jsonv +78 -0
- package/dot_local/bin/executable_jwt +94 -0
- package/dot_local/bin/executable_kill-port +75 -0
- package/dot_local/bin/executable_lorem +118 -0
- package/dot_local/bin/executable_mkscript +35 -0
- package/dot_local/bin/executable_monitor +56 -0
- package/dot_local/bin/executable_myip +51 -0
- 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 +132 -0
- package/dot_local/bin/executable_start-niri +8 -0
- package/dot_local/bin/executable_tmux-sessionizer +314 -0
- package/dot_local/bin/executable_tour +175 -0
- package/dot_local/bin/executable_up +21 -0
- package/dot_local/bin/executable_update +142 -0
- package/dot_local/bin/executable_uuid +87 -0
- package/dot_local/bin/executable_win +32 -0
- package/dot_local/bin/executable_yamlv +57 -0
- package/dot_local/share/bash-completion/completions/dot +72 -0
- 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/.keep +0 -0
- package/dot_local/share/zsh/completions/_dot +283 -0
- package/install.sh +342 -0
- package/package.json +1 -1
- 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 +224 -0
- package/scripts/demo/record.sh +42 -0
- 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 +381 -0
- package/scripts/diagnostics/conflicts.sh +72 -0
- package/scripts/diagnostics/doctor-unified.sh +38 -0
- package/scripts/diagnostics/doctor.sh +541 -0
- package/scripts/diagnostics/drift-dashboard.sh +37 -0
- package/scripts/diagnostics/health.sh +597 -0
- package/scripts/diagnostics/history-analysis.sh +85 -0
- 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 +438 -0
- package/scripts/diagnostics/smoke-test.sh +87 -0
- package/scripts/diagnostics/snapshot.sh +89 -0
- package/scripts/diagnostics/verify.sh +107 -0
- package/scripts/{verify_state.sh → diagnostics/verify_state.sh} +22 -22
- 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 +80 -0
- package/scripts/dot/commands/core.sh +185 -0
- package/scripts/dot/commands/diagnostics.sh +229 -0
- 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 +248 -0
- package/scripts/dot/commands/patterns.sh +54 -0
- package/scripts/dot/commands/restore.sh +231 -0
- package/scripts/dot/commands/secrets.sh +223 -0
- package/scripts/dot/commands/security.sh +76 -0
- package/scripts/dot/commands/tools.sh +469 -0
- 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 +372 -0
- package/scripts/fonts/install-nerd-fonts.sh +68 -0
- package/scripts/fonts/patch-fonts.sh +35 -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 +270 -0
- package/scripts/ops/chezmoi-diff.sh +15 -0
- package/scripts/ops/chezmoi-remove.sh +45 -0
- package/scripts/ops/chezmoi-update.sh +48 -0
- 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 +222 -0
- 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 +589 -0
- package/scripts/ops/setup.sh +137 -0
- package/scripts/ops/teleport.sh +33 -0
- 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 +70 -0
- package/scripts/secrets/create-secrets-file.sh +45 -0
- package/scripts/secrets/encrypt-ssh-key.sh +43 -0
- package/scripts/security/backup.sh +57 -0
- package/scripts/security/dns-doh.sh +51 -0
- package/scripts/security/encryption-check.sh +54 -0
- package/scripts/security/enforce-policies.sh +334 -0
- package/scripts/security/firewall.sh +90 -0
- package/scripts/security/lock-configs.sh +57 -0
- package/scripts/security/lock-screen.sh +55 -0
- package/scripts/security/manage-secrets.sh +428 -0
- package/scripts/security/ssh-cert.sh +203 -0
- package/scripts/security/telemetry-kill.sh +50 -0
- package/scripts/security/usb-safety.sh +51 -0
- package/scripts/theme/apply-gnome-theme.sh +328 -0
- package/scripts/theme/extract-theme.py +677 -0
- package/scripts/theme/install-boot-logo.sh +62 -0
- package/scripts/theme/install-catppuccin-themes.sh +370 -0
- package/scripts/theme/install-cursors.sh +25 -0
- package/scripts/theme/install-file-icons.sh +26 -0
- package/scripts/theme/install-grub-theme.sh +61 -0
- package/scripts/theme/install-lock-icon.sh +30 -0
- package/scripts/theme/merge-wallpaper.sh +141 -0
- package/scripts/theme/rebuild-themes.sh +309 -0
- package/scripts/theme/switch.sh +421 -0
- package/scripts/theme/wallpaper-rotate.sh +136 -0
- package/scripts/theme/wallpaper-sync.sh +397 -0
- package/scripts/tools/cmatrix.sh +21 -0
- package/scripts/{detect-collisions.py → tools/detect-collisions.py} +2 -2
- package/scripts/tools/emoji-picker.sh +48 -0
- package/scripts/tools/figlet-banner.sh +18 -0
- package/scripts/tools/log-rotate.sh +30 -0
- package/scripts/tools/lolcat-wrap.sh +19 -0
- package/scripts/tools/pipes.sh +48 -0
- package/scripts/tuning/linux.sh +185 -0
- package/scripts/tuning/macos.sh +55 -0
- 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 +4 -0
- 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 +7 -0
- package/templates/projects/molecule/converge.yml +7 -0
- package/templates/projects/molecule/molecule.yml +16 -0
- package/templates/projects/node/.github/workflows/ci.yml +30 -0
- package/templates/projects/node/README.md +4 -0
- package/templates/projects/node/package-lock.json +12 -0
- package/templates/projects/node/src/index.js +1 -0
- package/templates/projects/packer/README.md +15 -0
- package/templates/projects/packer/main.pkr.hcl +15 -0
- package/templates/projects/python/.github/workflows/ci.yml +34 -0
- package/templates/projects/python/README.md +4 -0
- package/templates/projects/python/pyproject.toml +15 -0
- 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 -62
- package/docs/COMPLIANCE.md +0 -47
- package/docs/OPERATIONS.md +0 -103
- package/docs/PR_DESCRIPTION.md +0 -150
- package/docs/ROADMAP_legacy.md +0 -556
- package/docs/SECURITY_CHECKLIST.md +0 -25
- package/docs/TASK.md +0 -99
- package/docs/WALKTHROUGH.md +0 -46
- package/scripts/backup.sh +0 -142
- package/scripts/banner.sh +0 -20
- package/scripts/benchmark.sh +0 -20
- package/scripts/build.sh +0 -41
- package/scripts/clean.sh +0 -31
- package/scripts/compile.sh +0 -54
- package/scripts/copy.sh +0 -108
- package/scripts/doctor.sh +0 -79
- package/scripts/dotfiles.sh +0 -63
- package/scripts/download.sh +0 -35
- package/scripts/help.sh +0 -57
- package/scripts/lock-configs.sh +0 -57
- package/scripts/package.sh +0 -46
- package/scripts/ssh.sh +0 -55
- package/scripts/teleport.sh +0 -23
- package/scripts/test-aliases.sh +0 -25
- package/scripts/test_smoke.sh +0 -88
- package/scripts/unpack.sh +0 -28
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.471)
|
|
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/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/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/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/WALKTHROUGH.md
DELETED
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
# Universal Configuration Walkthrough (v0.2.471)
|
|
2
|
-
|
|
3
|
-
## 🚀 Overview
|
|
4
|
-
We have successfully transformed the dotfiles into a modern, **universal configuration** managed by `chezmoi`. This release establishes a secure, high-performance, and compliant foundation for macOS, Linux, and Windows.
|
|
5
|
-
|
|
6
|
-
## 🛠️ Implemented Features
|
|
7
|
-
|
|
8
|
-
### 1. **Core Architecture**
|
|
9
|
-
- **Chezmoi**: Replaced legacy Makefiles/symlinks with a robust template engine.
|
|
10
|
-
- **Universal Templates**: `run_onchange_*.sh.tmpl` scripts adapt to OS (Darwin/Linux) automatically.
|
|
11
|
-
- **Performance**: Startup time validated at **~16ms** (Target: <20ms).
|
|
12
|
-
|
|
13
|
-
### 2. **Universal Installer (Zero-Dep)**
|
|
14
|
-
- **Bootstrap**: `install.sh` enables one-line installation via `curl`.
|
|
15
|
-
- **Teleport**: `dot teleport user@host` pushes configs ephemerally to remote servers.
|
|
16
|
-
- **Verification**: Syntax checked and validated.
|
|
17
|
-
|
|
18
|
-
### 3. **Deep Integration**
|
|
19
|
-
- **macOS**: `defaults` hardening (Screensaver, Firewall, Finder).
|
|
20
|
-
- **Fonts**: Auto-installation of `JetBrainsMono Nerd Font`.
|
|
21
|
-
- **Compliance**: STRICT XDG Base Directory enforcement.
|
|
22
|
-
|
|
23
|
-
### 4. **Self-Healing & Compliance**
|
|
24
|
-
- **Doctor**: `dot doctor` diagnoses drift, paths, and dependencies.
|
|
25
|
-
- **Audit**: `logging` of all changes to `~/.dotfiles_audit.log`.
|
|
26
|
-
- **Privacy**: `privacy-mode` alias disables telemetry.
|
|
27
|
-
|
|
28
|
-
## 🧪 Verification Results
|
|
29
|
-
|
|
30
|
-
| Test | Status | Notes |
|
|
31
|
-
| :--- | :--- | :--- |
|
|
32
|
-
| **Syntax** | ✅ PASSED | `install.sh`, `pkg.sh`, `teleport.sh` verified. |
|
|
33
|
-
| **Performance** | ✅ PASSED | **~16ms** Zsh startup time. |
|
|
34
|
-
| **Drift** | ⚠️ VARIES | Minor state drift may be reported due to audit logs. |
|
|
35
|
-
| **Drift** | ⚠️ VARIES | Minor state drift may be reported due to audit logs. |
|
|
36
|
-
| **Docker** | ✅ PASSED | **Ubuntu 26.04** bootstrap verified (`dotfiles:0.2.471`). |
|
|
37
|
-
|
|
38
|
-
## 📦 Artifacts
|
|
39
|
-
- **Installer**: `curl -sL dotfiles.io/install.sh | sh`
|
|
40
|
-
- **Package**: `dist/dotfiles-v0.2.471.tar.gz`
|
|
41
|
-
- **Docs**: Full `README.md`, `COMPLIANCE.md`, `OPERATIONS.md`.
|
|
42
|
-
|
|
43
|
-
## 🔮 Next Steps
|
|
44
|
-
- Merge Pull Request.
|
|
45
|
-
- Deploy to production workstations.
|
|
46
|
-
- Begin Phase 28 (Cloud-Native Bootstrapping).
|
package/scripts/backup.sh
DELETED
|
@@ -1,142 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env bash
|
|
2
|
-
|
|
3
|
-
# 🅳🅾🆃🅵🅸🅻🅴🆂 (v0.2.471) - <https://dotfiles.io>
|
|
4
|
-
# Made with ♥ in London, UK by Sebastien Rousseau
|
|
5
|
-
# Copyright (c) 2015-2025. All rights reserved
|
|
6
|
-
# License: MIT
|
|
7
|
-
|
|
8
|
-
## 🆅🅰🆁🅸🅰🅱🅻🅴🆂 - Set Dotfiles variables.
|
|
9
|
-
DF_DOTFILESDIR="${HOME}/.dotfiles" # Location of dotfiles.
|
|
10
|
-
DF_TIMESTAMP=$(date +"%Y%m%d_%H%M%S") # Timestamp for backup directory
|
|
11
|
-
DF_BACKUPDIR="${HOME}/.dotfiles_backup" # Base backup directory
|
|
12
|
-
DF="dotfiles" # Directory name for dotfiles backup
|
|
13
|
-
|
|
14
|
-
# ANSI color codes - defined here instead of relying on external file
|
|
15
|
-
RED='\033[0;31m'
|
|
16
|
-
GREEN='\033[0;32m'
|
|
17
|
-
YELLOW='\033[0;33m'
|
|
18
|
-
CYAN='\033[0;36m'
|
|
19
|
-
NC='\033[0m' # No Color
|
|
20
|
-
|
|
21
|
-
## 🅱🅰🅲🅺🆄🅿 - Backup existing files.
|
|
22
|
-
backup() {
|
|
23
|
-
echo ""
|
|
24
|
-
echo -e "${RED}❭${NC} Starting Backup Procedure."
|
|
25
|
-
echo ""
|
|
26
|
-
|
|
27
|
-
# Create base backup directory if it doesn't exist
|
|
28
|
-
if [[ -d "${DF_BACKUPDIR}" ]]; then
|
|
29
|
-
echo -e "${RED} ✘${NC} Backup directory already exists."
|
|
30
|
-
else
|
|
31
|
-
echo -e "${GREEN} ✔${NC} Creating backup directory '${GREEN}${DF_BACKUPDIR}${NC}'..."
|
|
32
|
-
mkdir -p "${DF_BACKUPDIR}"
|
|
33
|
-
if [[ $? -ne 0 ]]; then
|
|
34
|
-
echo -e "${RED} ✘${NC} Failed to create backup directory. Exiting."
|
|
35
|
-
return 1
|
|
36
|
-
fi
|
|
37
|
-
fi
|
|
38
|
-
|
|
39
|
-
# Create timestamped backup directory
|
|
40
|
-
CURRENT_BACKUP_DIR="${DF_BACKUPDIR}/${DF_TIMESTAMP}"
|
|
41
|
-
mkdir -p "${CURRENT_BACKUP_DIR}"
|
|
42
|
-
if [[ $? -ne 0 ]]; then
|
|
43
|
-
echo -e "${RED} ✘${NC} Failed to create timestamped backup directory. Exiting."
|
|
44
|
-
return 1
|
|
45
|
-
fi
|
|
46
|
-
|
|
47
|
-
# Backup existing Dotfiles directory.
|
|
48
|
-
if [[ -d "${HOME}"/.dotfiles ]]; then
|
|
49
|
-
echo -e "${GREEN} ✔${NC} Backing up previous Dotfiles installation to '${GREEN}${CURRENT_BACKUP_DIR}/${DF}${NC}'..."
|
|
50
|
-
mkdir -p "${CURRENT_BACKUP_DIR}/${DF}"
|
|
51
|
-
if [[ $? -ne 0 ]]; then
|
|
52
|
-
echo -e "${RED} ✘${NC} Failed to create dotfiles backup directory. Skipping dotfiles backup."
|
|
53
|
-
else
|
|
54
|
-
# Use rsync instead of mv to preserve original until we know the backup succeeded
|
|
55
|
-
rsync -a "${DF_DOTFILESDIR}/" "${CURRENT_BACKUP_DIR}/${DF}/"
|
|
56
|
-
if [[ $? -ne 0 ]]; then
|
|
57
|
-
echo -e "${RED} ✘${NC} Failed to backup dotfiles directory."
|
|
58
|
-
fi
|
|
59
|
-
fi
|
|
60
|
-
fi
|
|
61
|
-
|
|
62
|
-
# File list (use trailing slash for directories)
|
|
63
|
-
FILES="
|
|
64
|
-
.alias
|
|
65
|
-
.bash_aliases
|
|
66
|
-
.bash_profile
|
|
67
|
-
.bash_prompt
|
|
68
|
-
.bashrc
|
|
69
|
-
.curlrc
|
|
70
|
-
.dir_colors
|
|
71
|
-
.exports
|
|
72
|
-
.functions
|
|
73
|
-
.gemrc
|
|
74
|
-
.gitattributes
|
|
75
|
-
.gitconfig
|
|
76
|
-
.gitignore
|
|
77
|
-
.gitmessage
|
|
78
|
-
.inputrc
|
|
79
|
-
.nanorc
|
|
80
|
-
.npmrc
|
|
81
|
-
.path
|
|
82
|
-
.profile
|
|
83
|
-
.tmux.conf
|
|
84
|
-
.vimrc
|
|
85
|
-
.wgetrc
|
|
86
|
-
.yarnrc
|
|
87
|
-
.zshenv
|
|
88
|
-
.zshrc
|
|
89
|
-
.zprofile
|
|
90
|
-
cacert.pem
|
|
91
|
-
"
|
|
92
|
-
|
|
93
|
-
# Create dotfiles directory in the backup location
|
|
94
|
-
mkdir -p "${CURRENT_BACKUP_DIR}/files"
|
|
95
|
-
|
|
96
|
-
# Track if we've successfully backed up any files
|
|
97
|
-
BACKUP_COUNT=0
|
|
98
|
-
|
|
99
|
-
for file in ${FILES}; do
|
|
100
|
-
if [[ -f "${HOME}/${file}" ]]; then
|
|
101
|
-
echo -e "${GREEN} ✔${NC} Backing up '${YELLOW}${file}${NC}'"
|
|
102
|
-
cp -f "${HOME}/${file}" "${CURRENT_BACKUP_DIR}/files/${file}"
|
|
103
|
-
if [[ $? -eq 0 ]]; then
|
|
104
|
-
((BACKUP_COUNT++))
|
|
105
|
-
else
|
|
106
|
-
echo -e "${RED} ✘${NC} Failed to backup '${YELLOW}${file}${NC}'"
|
|
107
|
-
fi
|
|
108
|
-
fi
|
|
109
|
-
done
|
|
110
|
-
|
|
111
|
-
if [[ ${BACKUP_COUNT} -gt 0 ]]; then
|
|
112
|
-
echo -e "${GREEN} ✔${NC} ${BACKUP_COUNT} files have been backed up to '${CYAN}${CURRENT_BACKUP_DIR}/files${NC}'"
|
|
113
|
-
else
|
|
114
|
-
echo -e "${YELLOW} ⚠${NC} No files were backed up."
|
|
115
|
-
fi
|
|
116
|
-
|
|
117
|
-
echo ""
|
|
118
|
-
echo -e "${GREEN}❭${NC} Backup procedure completed."
|
|
119
|
-
echo ""
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
# Process command line arguments
|
|
123
|
-
case "$1" in
|
|
124
|
-
backup)
|
|
125
|
-
backup
|
|
126
|
-
;;
|
|
127
|
-
help|--help|-h)
|
|
128
|
-
echo "Usage: $0 [command]"
|
|
129
|
-
echo ""
|
|
130
|
-
echo "Commands:"
|
|
131
|
-
echo " backup Backup dotfiles and configuration files"
|
|
132
|
-
echo " help Display this help message"
|
|
133
|
-
echo ""
|
|
134
|
-
;;
|
|
135
|
-
"")
|
|
136
|
-
echo "No command specified. Use '$0 help' for usage information."
|
|
137
|
-
;;
|
|
138
|
-
*)
|
|
139
|
-
echo "Unknown command: $1"
|
|
140
|
-
echo "Use '$0 help' for usage information."
|
|
141
|
-
;;
|
|
142
|
-
esac
|
package/scripts/banner.sh
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env bash
|
|
2
|
-
|
|
3
|
-
# 🅳🅾🆃🅵🅸🅻🅴🆂 (v0.2.471) - <https://dotfiles.io>
|
|
4
|
-
# Made with ♥ in London, UK by Sebastien Rousseau
|
|
5
|
-
# Copyright (c) 2015-2025. All rights reserved
|
|
6
|
-
# License: MIT
|
|
7
|
-
|
|
8
|
-
## 🅱🅰🅽🅽🅴🆁 - Display banner.
|
|
9
|
-
|
|
10
|
-
# shellcheck disable=SC2154
|
|
11
|
-
clear
|
|
12
|
-
cat <<EOF
|
|
13
|
-
|
|
14
|
-
┌───────────────────────────────────────────────┐
|
|
15
|
-
│ $(echo -e "\033[1;96mDotfiles (v${DF_VERSION})\033[0m\n") │
|
|
16
|
-
├───────────────────────────────────────────────┤
|
|
17
|
-
│ $(echo -e "\033[0;93mSimply designed to fit your shell life\033[0m\n") │
|
|
18
|
-
└───────────────────────────────────────────────┘
|
|
19
|
-
|
|
20
|
-
EOF
|
package/scripts/benchmark.sh
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env bash
|
|
2
|
-
|
|
3
|
-
# standard-benchmarks.sh
|
|
4
|
-
# Measures shell startup time to ensure performance goals (<20ms) are met.
|
|
5
|
-
|
|
6
|
-
set -euo pipefail
|
|
7
|
-
|
|
8
|
-
log_info() { echo -e "\n[INFO] $*"; }
|
|
9
|
-
|
|
10
|
-
# Check for hyperfine (preferred) or fall back to simplified loop
|
|
11
|
-
if command -v hyperfine >/dev/null; then
|
|
12
|
-
log_info "Running benchmark with hyperfine..."
|
|
13
|
-
hyperfine --warmup 3 --min-runs 10 "zsh -i -c exit"
|
|
14
|
-
else
|
|
15
|
-
log_info "Hyperfine not found. Using simple loop..."
|
|
16
|
-
echo "Running 10 iterations of 'zsh -i -c exit'..."
|
|
17
|
-
for _ in {1..10}; do
|
|
18
|
-
time zsh -i -c exit
|
|
19
|
-
done
|
|
20
|
-
fi
|
package/scripts/build.sh
DELETED
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env bash
|
|
2
|
-
|
|
3
|
-
# 🅳🅾🆃🅵🅸🅻🅴🆂 (v0.2.471) - <https://dotfiles.io>
|
|
4
|
-
# Made with ♥ in London, UK by Sebastien Rousseau
|
|
5
|
-
# Copyright (c) 2015-2025. All rights reserved
|
|
6
|
-
# License: MIT
|
|
7
|
-
|
|
8
|
-
# shellcheck disable=SC1091
|
|
9
|
-
. "./lib/configurations/default/constants.sh"
|
|
10
|
-
|
|
11
|
-
# shellcheck disable=SC1091
|
|
12
|
-
. "./scripts/backup.sh"
|
|
13
|
-
|
|
14
|
-
# shellcheck disable=SC1091
|
|
15
|
-
. "./scripts/download.sh"
|
|
16
|
-
|
|
17
|
-
# shellcheck disable=SC1091
|
|
18
|
-
. "./scripts/unpack.sh"
|
|
19
|
-
|
|
20
|
-
# shellcheck disable=SC1091
|
|
21
|
-
. "./scripts/copy.sh"
|
|
22
|
-
|
|
23
|
-
## 🅱🆄🅸🅻🅳 - Build the dotfiles on your system.
|
|
24
|
-
build() {
|
|
25
|
-
|
|
26
|
-
# shellcheck disable=SC2154
|
|
27
|
-
echo "${RED}❭${NC} Preparing the dotfiles on your system."
|
|
28
|
-
|
|
29
|
-
backup &&
|
|
30
|
-
download &&
|
|
31
|
-
unpack &&
|
|
32
|
-
copy
|
|
33
|
-
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
args=$* # Arguments passed to script.
|
|
37
|
-
export args="${args}" # Exporting arguments.
|
|
38
|
-
if [[ ${args} = "build" ]]; then
|
|
39
|
-
echo "$*"
|
|
40
|
-
build
|
|
41
|
-
fi
|
package/scripts/clean.sh
DELETED
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env bash
|
|
2
|
-
|
|
3
|
-
# 🅳🅾🆃🅵🅸🅻🅴🆂 (v0.2.471) - <https://dotfiles.io>
|
|
4
|
-
# Made with ♥ in London, UK by Sebastien Rousseau
|
|
5
|
-
# Copyright (c) 2015-2025. All rights reserved
|
|
6
|
-
# License: MIT
|
|
7
|
-
|
|
8
|
-
## 🅲🅻🅴🅰🅽 - Clean up.
|
|
9
|
-
clean() {
|
|
10
|
-
|
|
11
|
-
# shellcheck disable=SC1091
|
|
12
|
-
. "./lib/configurations/default/constants.sh"
|
|
13
|
-
|
|
14
|
-
echo ""
|
|
15
|
-
# shellcheck disable=SC2154
|
|
16
|
-
echo "${RED}❭${NC} Starting Cleanup."
|
|
17
|
-
echo ""
|
|
18
|
-
|
|
19
|
-
# shellcheck disable=SC2154
|
|
20
|
-
echo "${GREEN} ✔${NC} Cleaning up installation files."
|
|
21
|
-
rm -fr dist/
|
|
22
|
-
rm -f tsconfig.tsbuildinfo
|
|
23
|
-
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
args=$* # Arguments passed to script.
|
|
27
|
-
export args="${args}" # Exporting arguments.
|
|
28
|
-
if [[ ${args} = "clean" ]]; then
|
|
29
|
-
echo "$*"
|
|
30
|
-
clean
|
|
31
|
-
fi
|
package/scripts/compile.sh
DELETED
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env bash
|
|
2
|
-
|
|
3
|
-
# 🅳🅾🆃🅵🅸🅻🅴🆂 (v0.2.471) - <https://dotfiles.io>
|
|
4
|
-
# Made with ♥ in London, UK by Sebastien Rousseau
|
|
5
|
-
# Copyright (c) 2015-2025. All rights reserved
|
|
6
|
-
# License: MIT
|
|
7
|
-
|
|
8
|
-
## 🅲🅾🅼🅿🅸🅻🅴 🅳🅾🆃🅵🅸🅻🅴🆂 - Compile dotfiles.
|
|
9
|
-
|
|
10
|
-
compile() {
|
|
11
|
-
|
|
12
|
-
# shellcheck disable=SC1091
|
|
13
|
-
. "./lib/configurations/default/constants.sh"
|
|
14
|
-
|
|
15
|
-
echo ""
|
|
16
|
-
# shellcheck disable=SC2154
|
|
17
|
-
echo "${RED}❭${NC} Starting Compilation."
|
|
18
|
-
echo ""
|
|
19
|
-
|
|
20
|
-
echo "${GREEN} ✔${NC} Copying libraries."
|
|
21
|
-
# shellcheck disable=SC1091
|
|
22
|
-
cp -R ./lib ./dist/
|
|
23
|
-
|
|
24
|
-
echo "${GREEN} ✔${NC} Copying scripts."
|
|
25
|
-
# shellcheck disable=SC1091
|
|
26
|
-
cp -R ./scripts ./dist/
|
|
27
|
-
|
|
28
|
-
echo "${GREEN} ✔${NC} Removing temporary files."
|
|
29
|
-
# shellcheck disable=SC1091
|
|
30
|
-
rimraf \"./dist/lib/**/*.tmp\"
|
|
31
|
-
|
|
32
|
-
echo "${GREEN} ✔${NC} Copying JavaScript binaries."
|
|
33
|
-
cp -f -R ./bin ./dist/
|
|
34
|
-
|
|
35
|
-
echo "${GREEN} ✔${NC} Copying Makefile."
|
|
36
|
-
cp -f ./Makefile ./dist
|
|
37
|
-
|
|
38
|
-
echo "${GREEN} ✔${NC} Compressing JavaScript files."
|
|
39
|
-
jsmin ./bin/backup.js >dist/bin/backup.js && jsmin ./bin/constants.js >dist/bin/constants.js && jsmin ./bin/copy.js >dist/bin/copy.js && jsmin ./bin/dotfiles.js >dist/bin/dotfiles.js && jsmin ./bin/download.js >dist/bin/download.js && jsmin ./bin/index.js >dist/bin/index.js && jsmin ./bin/transfer.js >dist/bin/transfer.js && jsmin ./bin/unpack.js >dist/bin/unpack.js
|
|
40
|
-
|
|
41
|
-
echo "${GREEN} ✔${NC} Determining the file sizes."
|
|
42
|
-
filesizes ./dist/ >./dist/filesizes.txt
|
|
43
|
-
|
|
44
|
-
# shellcheck disable=SC2154
|
|
45
|
-
echo "${GREEN} ✔${NC} Compilation completed."
|
|
46
|
-
echo ""
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
args=$* # Arguments passed to script.
|
|
50
|
-
export args="${args}" # Exporting arguments.
|
|
51
|
-
if [[ ${args} = "compile" ]]; then
|
|
52
|
-
echo "$*"
|
|
53
|
-
compile
|
|
54
|
-
fi
|
package/scripts/copy.sh
DELETED
|
@@ -1,108 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env bash
|
|
2
|
-
|
|
3
|
-
# 🅳🅾🆃🅵🅸🅻🅴🆂 (v0.2.471) - <https://dotfiles.io>
|
|
4
|
-
# Made with ♥ in London, UK by Sebastien Rousseau
|
|
5
|
-
# Copyright (c) 2015-2025. All rights reserved
|
|
6
|
-
# License: MIT
|
|
7
|
-
|
|
8
|
-
## 🅲🅾🅿🆈 - Copy the dotfiles on your system.
|
|
9
|
-
copy() {
|
|
10
|
-
|
|
11
|
-
# shellcheck disable=SC1091
|
|
12
|
-
. "./lib/configurations/default/constants.sh"
|
|
13
|
-
|
|
14
|
-
echo ""
|
|
15
|
-
# shellcheck disable=SC2154
|
|
16
|
-
echo "${RED}❭${NC} Starting Copying Procedure."
|
|
17
|
-
echo ""
|
|
18
|
-
|
|
19
|
-
# shellcheck disable=SC2154
|
|
20
|
-
# if [[ -d "${DF_DIR}" ]]; then
|
|
21
|
-
# echo "${RED}❭${NC} Copying Binaries to ${DF_DIR}."
|
|
22
|
-
# cp -f -R ./bin/ "${DF_DIR}"bin/
|
|
23
|
-
# else
|
|
24
|
-
# echo "${RED}❭${NC} Copying Binaries to ${DF_DIR}."
|
|
25
|
-
# mkdir -p "${DF_DIR}"
|
|
26
|
-
# cp -f -R ./bin/ "${DF_DIR}"bin/
|
|
27
|
-
# fi
|
|
28
|
-
|
|
29
|
-
# shellcheck disable=SC2154
|
|
30
|
-
if [[ -d "${DF_DIR}" ]]; then
|
|
31
|
-
echo "${RED}❭${NC} Copying ${GREEN}Dotfiles v${DF_VERSION}${NC} to ${CYAN}${DF_DIR}${NC}"
|
|
32
|
-
cp -f -R ./lib/ "${DF_DIR}"lib/
|
|
33
|
-
else
|
|
34
|
-
echo "${RED}❭${NC} Copying ${GREEN}Dotfiles v${DF_VERSION}${NC} to ${CYAN}${DF_DIR}${NC}"
|
|
35
|
-
mkdir -p "${DF_DIR}"
|
|
36
|
-
cp -f -R ./lib/ "${DF_DIR}"lib/
|
|
37
|
-
fi
|
|
38
|
-
|
|
39
|
-
# shellcheck disable=SC2154
|
|
40
|
-
# if [[ -d "${DF_DIR}" ]]; then
|
|
41
|
-
# echo "${RED}❭${NC} Copying Scripts to ${CYAN}${DF_DIR}${NC}"
|
|
42
|
-
# cp -f -R ./scripts/ "${DF_DIR}"scripts/
|
|
43
|
-
# else
|
|
44
|
-
# echo "${RED}❭${NC} Copying Scripts to ${CYAN}${DF_DIR}${NC}"
|
|
45
|
-
# mkdir -p "${DF_DIR}"
|
|
46
|
-
# cp -f -R ./scripts/ "${DF_DIR}"scripts/
|
|
47
|
-
# fi
|
|
48
|
-
|
|
49
|
-
# cacert -- Copying cacert.pem file.
|
|
50
|
-
# shellcheck disable=SC2154
|
|
51
|
-
cp -f "${PWD}"/lib/configurations/curl/cacert.pem "${HOME}"/.cacert.pem &&
|
|
52
|
-
echo "${GREEN} ✔${NC} Copying '${YELLOW}cacert.pem${NC}'" &&
|
|
53
|
-
|
|
54
|
-
# bashrc -- Copying .bashrc file.
|
|
55
|
-
cp -f "${PWD}"/lib/configurations/bash/bashrc "${HOME}"/.bashrc &&
|
|
56
|
-
echo "${GREEN} ✔${NC} Copying '${YELLOW}.bashrc${NC}'" &&
|
|
57
|
-
|
|
58
|
-
# curlrc -- Copying .curlrc file.
|
|
59
|
-
cp -f "${PWD}"/lib/configurations/curl/curlrc "${HOME}"/.curlrc &&
|
|
60
|
-
echo "${GREEN} ✔${NC} Copying '${YELLOW}.curlrc${NC}'" &&
|
|
61
|
-
|
|
62
|
-
# gemrc -- Copying .gemrc file.
|
|
63
|
-
cp -f "${PWD}"/lib/configurations/gem/gemrc "${HOME}"/.gemrc &&
|
|
64
|
-
echo "${GREEN} ✔${NC} Copying '${YELLOW}.gemrc${NC}'" &&
|
|
65
|
-
|
|
66
|
-
# inputrc -- Copying .inputrc file.
|
|
67
|
-
cp -f "${PWD}"/lib/configurations/input/inputrc "${HOME}"/.inputrc &&
|
|
68
|
-
echo "${GREEN} ✔${NC} Copying '${YELLOW}.inputrc${NC}'" &&
|
|
69
|
-
|
|
70
|
-
# jshintrc -- Copying .jshintrc file.
|
|
71
|
-
cp -f "${PWD}"/lib/configurations/jshint/jshintrc "${HOME}"/.jshintrc &&
|
|
72
|
-
echo "${GREEN} ✔${NC} Copying '${YELLOW}.jshintrc${NC}'" &&
|
|
73
|
-
|
|
74
|
-
# nanorc -- Copying .nanorc file.
|
|
75
|
-
cp -f "${PWD}"/lib/configurations/nano/nanorc "${HOME}"/.nanorc &&
|
|
76
|
-
echo "${GREEN} ✔${NC} Copying '${YELLOW}.nanorc${NC}'" &&
|
|
77
|
-
|
|
78
|
-
# profile -- Copying .profile file.
|
|
79
|
-
cp -f "${PWD}"/lib/configurations/profile/profile "${HOME}"/.profile &&
|
|
80
|
-
echo "${GREEN} ✔${NC} Copying '${YELLOW}.profile${NC}'" &&
|
|
81
|
-
|
|
82
|
-
# tmux -- Copying .tmux.conf file.
|
|
83
|
-
cp -f "${PWD}"/lib/configurations/tmux/tmux "${HOME}"/.tmux.conf &&
|
|
84
|
-
echo "${GREEN} ✔${NC} Copying '${YELLOW}.tmux.conf${NC}'" &&
|
|
85
|
-
|
|
86
|
-
# vimrc -- Copying .vimrc file.
|
|
87
|
-
cp -f "${PWD}"/lib/configurations/vim/vimrc "${HOME}"/.vimrc &&
|
|
88
|
-
echo "${GREEN} ✔${NC} Copying '${YELLOW}.vimrc${NC}'" &&
|
|
89
|
-
|
|
90
|
-
# wgetrc -- Copying .wgetrc file.
|
|
91
|
-
cp -f "${PWD}"/lib/configurations/wget/wgetrc "${HOME}"/.wgetrc &&
|
|
92
|
-
echo "${GREEN} ✔${NC} Copying '${YELLOW}.wgetrc${NC}'" &&
|
|
93
|
-
|
|
94
|
-
# zshrc -- Copying .zshrc file.
|
|
95
|
-
cp -f "${PWD}"/lib/configurations/zsh/zshrc "${HOME}"/.zshrc &&
|
|
96
|
-
echo "${GREEN} ✔${NC} Copying '${YELLOW}.zshrc${NC}'"
|
|
97
|
-
|
|
98
|
-
# shellcheck disable=SC2154
|
|
99
|
-
echo "${GREEN} ✔${NC} All files have been copied up'"
|
|
100
|
-
echo ""
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
args=$* # Arguments passed to script.
|
|
104
|
-
export args="${args}" # Exporting arguments.
|
|
105
|
-
if [[ ${args} = "copy" ]]; then
|
|
106
|
-
echo "$*"
|
|
107
|
-
copy
|
|
108
|
-
fi
|
package/scripts/doctor.sh
DELETED
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env bash
|
|
2
|
-
# MIT License
|
|
3
|
-
# Copyright (c) 2026 Sebastien Rousseau
|
|
4
|
-
# See LICENSE file for details.
|
|
5
|
-
|
|
6
|
-
# Script: doctor.sh
|
|
7
|
-
# Description: Diagnostics tool for the dotfiles environment.
|
|
8
|
-
# Checks dependencies, paths, and configuration integrity.
|
|
9
|
-
|
|
10
|
-
set -e
|
|
11
|
-
|
|
12
|
-
GREEN='\033[0;32m'
|
|
13
|
-
RED='\033[0;31m'
|
|
14
|
-
YELLOW='\033[1;33m'
|
|
15
|
-
NC='\033[0m' # No Color
|
|
16
|
-
|
|
17
|
-
echo "🩺 Dotfiles Doctor - System Diagnostics"
|
|
18
|
-
echo "-------------------------------------"
|
|
19
|
-
|
|
20
|
-
Errors=0
|
|
21
|
-
Warnings=0
|
|
22
|
-
|
|
23
|
-
log_success() { echo -e "${GREEN}✅ $1${NC}"; }
|
|
24
|
-
log_fail() { echo -e "${RED}❌ $1${NC}"; Errors=$((Errors + 1)); }
|
|
25
|
-
log_warn() { echo -e "${YELLOW}⚠️ $1${NC}"; Warnings=$((Warnings + 1)); }
|
|
26
|
-
|
|
27
|
-
# 1. Check Dependencies
|
|
28
|
-
echo "Checking Core Dependencies..."
|
|
29
|
-
for cmd in git curl chezmoi starship rg bat; do
|
|
30
|
-
if command -v "$cmd" &>/dev/null; then
|
|
31
|
-
log_success "Found $cmd: $(command -v "$cmd")"
|
|
32
|
-
else
|
|
33
|
-
log_fail "Missing $cmd"
|
|
34
|
-
fi
|
|
35
|
-
done
|
|
36
|
-
|
|
37
|
-
# 2. Check XDG Compliance
|
|
38
|
-
echo -e "\nChecking Environment..."
|
|
39
|
-
if [[ -z "$XDG_CONFIG_HOME" ]]; then
|
|
40
|
-
log_warn "XDG_CONFIG_HOME is not set (Defaulting to ~/.config)"
|
|
41
|
-
else
|
|
42
|
-
log_success "XDG_CONFIG_HOME=$XDG_CONFIG_HOME"
|
|
43
|
-
fi
|
|
44
|
-
|
|
45
|
-
if [[ -z "$PIPX_HOME" ]]; then
|
|
46
|
-
log_warn "PIPX_HOME is not set (Check paths configuration)"
|
|
47
|
-
else
|
|
48
|
-
log_success "PIPX_HOME=$PIPX_HOME"
|
|
49
|
-
fi
|
|
50
|
-
|
|
51
|
-
# 3. Check Chezmoi State
|
|
52
|
-
echo -e "\nChecking Chezmoi State..."
|
|
53
|
-
if chezmoi verify &>/dev/null; then
|
|
54
|
-
log_success "Chezmoi state is synchronized"
|
|
55
|
-
else
|
|
56
|
-
log_fail "Chezmoi state has drifted (Run 'dot drift' to see details)"
|
|
57
|
-
fi
|
|
58
|
-
|
|
59
|
-
# 4. Check Critical Files
|
|
60
|
-
echo -e "\nChecking Critical Files..."
|
|
61
|
-
if [[ -f "$HOME/.zshrc" ]]; then
|
|
62
|
-
log_success "Found .zshrc"
|
|
63
|
-
else
|
|
64
|
-
log_fail "Missing .zshrc"
|
|
65
|
-
fi
|
|
66
|
-
|
|
67
|
-
# Summary
|
|
68
|
-
echo -e "\n-------------------------------------"
|
|
69
|
-
if [[ $Errors -eq 0 ]]; then
|
|
70
|
-
if [[ $Warnings -eq 0 ]]; then
|
|
71
|
-
echo -e "${GREEN}All systems healthy! 🚀${NC}"
|
|
72
|
-
else
|
|
73
|
-
echo -e "${YELLOW}System healthy with $Warnings warnings.${NC}"
|
|
74
|
-
fi
|
|
75
|
-
else
|
|
76
|
-
echo -e "${RED}Found $Errors errors and $Warnings warnings.${NC}"
|
|
77
|
-
echo "Run 'dot heal' to attempt auto-repair."
|
|
78
|
-
exit 1
|
|
79
|
-
fi
|