@sebastienrousseau/dotfiles 0.2.502 → 0.2.504
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 +109 -9
- package/LICENSE +21 -1283
- package/README.md +6 -4
- package/docs/CONFIG_STRATEGY.md +124 -0
- package/docs/COPYRIGHT +1 -1
- package/docs/GOVERNANCE.md +98 -0
- package/docs/MAINTAINERS.md +41 -0
- package/docs/OPENCODE.md +127 -0
- package/docs/README.md +2 -0
- package/docs/STRUCTURE.md +102 -0
- package/docs/adr/ADR-011-nushell-tier3-keep.md +2 -2
- package/docs/architecture/AI_COST_OPTIMIZATION.md +143 -0
- package/docs/architecture/REPO_LAYOUT.md +8 -8
- package/docs/archive/MILESTONE_v0.2.493.md +1 -1
- package/docs/index.md +2 -2
- package/docs/interop/POWERSHELL.md +1 -1
- package/docs/manual/00-introduction.md +1 -1
- package/docs/manual/01-concepts/02-trust-model.md +1 -1
- package/docs/manual/03-reference/02-config-files.md +2 -2
- package/docs/manual/_toc.yml +1 -1
- package/docs/manual/command-index.md +72 -59
- package/docs/operations/CI_COMPOSITES.md +2 -2
- package/docs/operations/COMPLETIONS.md +2 -2
- package/docs/operations/COVERAGE.md +5 -5
- package/docs/operations/HARD_AUDIT_2026.md +11 -11
- package/docs/operations/MAINTENANCE.md +3 -3
- package/docs/operations/MANIFEST.md +127 -0
- package/docs/operations/RELEASE_PIPELINE.md +130 -0
- package/docs/operations/RFC_v0_2_503_reorganization.md +280 -0
- package/docs/operations/ROADMAP_2026.md +6 -6
- package/docs/operations/ROADMAP_V0_2_503.md +134 -0
- package/docs/operations/TESTING.md +17 -0
- package/docs/operations/TRACEABILITY.md +6 -3
- package/docs/operations/VERSION_SYNC.md +4 -4
- package/docs/reference/POWERSHELL_PARITY.md +8 -7
- package/docs/schema/dot-env-v1.json +110 -0
- package/docs/security/CI_EGRESS_ALLOWLIST.md +1 -1
- package/docs/security/CI_PINNING.md +17 -9
- package/docs/security/DEPS_DEV_EXCEPTIONS.md +2 -2
- package/docs/security/FUZZING.md +114 -0
- package/docs/security/INSTALL_VERIFICATION.md +2 -2
- package/docs/security/POLICY_RELEASES.md +2 -2
- package/docs/security/SCORECARD.md +58 -3
- package/docs/security/SHELL_EXEMPTIONS.md +4 -4
- package/docs/security/VERIFY_RELEASE.md +201 -0
- package/install.sh +118 -5
- package/package.json +1 -1
- package/scripts/README.md +123 -0
- package/scripts/ci/check-copyright-headers.sh +4 -93
- package/scripts/ci/check-shell-preamble.sh +4 -103
- package/scripts/ci/guard-gitleaks-checkout.sh +4 -54
- package/scripts/diagnostics/a2a-conformance.sh +4 -4
- package/scripts/diagnostics/alias-governance.sh +1 -1
- package/scripts/diagnostics/aliases-cheatsheet.sh +2 -2
- package/scripts/diagnostics/benchmark.sh +5 -5
- package/scripts/diagnostics/conflicts.sh +2 -2
- package/scripts/diagnostics/doctor-unified.sh +3 -3
- package/scripts/diagnostics/doctor.sh +10 -10
- package/scripts/diagnostics/drift-dashboard.sh +2 -2
- package/scripts/diagnostics/health.sh +4 -4
- package/scripts/diagnostics/history-analysis.sh +2 -2
- package/scripts/diagnostics/mcp-doctor.sh +10 -7
- package/scripts/diagnostics/perf.sh +5 -5
- package/scripts/diagnostics/scorecard.sh +4 -4
- package/scripts/diagnostics/security-score.sh +25 -6
- package/scripts/diagnostics/smoke-test.sh +2 -2
- package/scripts/diagnostics/snapshot.sh +2 -2
- package/scripts/diagnostics/verify.sh +4 -4
- package/scripts/diagnostics/version-locks.sh +13 -3
- package/scripts/diagnostics/workstation-attestation.sh +14 -14
- package/scripts/dot/commands/agent.sh +8 -0
- package/scripts/dot/commands/agents.sh +14 -4
- package/scripts/dot/commands/ai.sh +156 -37
- package/scripts/dot/commands/appearance.sh +2 -2
- package/scripts/dot/commands/core.sh +2 -2
- package/scripts/dot/commands/diagnostics.sh +5 -5
- package/scripts/dot/commands/env-emit.sh +202 -0
- package/scripts/dot/commands/fleet.sh +22 -16
- package/scripts/dot/commands/init.sh +4 -4
- package/scripts/dot/commands/lint.sh +9 -4
- package/scripts/dot/commands/manual.sh +3 -3
- package/scripts/dot/commands/meta.sh +12 -6
- package/scripts/dot/commands/patterns.sh +2 -2
- package/scripts/dot/commands/registry.sh +4 -4
- package/scripts/dot/commands/restore.sh +4 -4
- package/scripts/dot/commands/secrets.sh +4 -3
- package/scripts/dot/commands/security.sh +2 -2
- package/scripts/dot/commands/tools.sh +13 -3
- package/scripts/dot/powershell/Dot.psm1 +199 -0
- package/scripts/fonts/install-nerd-fonts.sh +2 -2
- package/scripts/git-hooks/pre-commit-audit.sh +3 -3
- package/scripts/git-hooks/pre-push +13 -0
- package/scripts/ops/ai-setup.sh +1 -1
- package/scripts/ops/bundle.sh +3 -3
- package/scripts/ops/chaos.sh +2 -2
- package/scripts/ops/chezmoi-apply.sh +12 -6
- package/scripts/ops/heal.sh +4 -4
- package/scripts/ops/post-apply-repair.sh +2 -2
- package/scripts/ops/prewarm.sh +2 -2
- package/scripts/ops/release.sh +4 -4
- package/scripts/ops/rollback.sh +4 -4
- package/scripts/ops/setup.sh +2 -2
- package/scripts/qa/check-version-consistency.sh +123 -0
- package/scripts/qa/coverage-baseline.sh +1 -1
- package/scripts/qa/docs-coverage.sh +2 -2
- package/scripts/qa/powershell-contract.ps1 +1 -1
- package/scripts/qa/scorecard-snapshot.sh +127 -0
- package/scripts/security/backup.sh +2 -2
- package/scripts/security/dns-doh.sh +4 -4
- package/scripts/security/encryption-check.sh +4 -4
- package/scripts/security/enforce-policies.sh +2 -2
- package/scripts/security/firewall.sh +4 -4
- package/scripts/security/lock-screen.sh +4 -4
- package/scripts/security/manage-secrets.sh +2 -2
- package/scripts/security/ssh-cert.sh +2 -2
- package/scripts/security/telemetry-kill.sh +4 -4
- package/scripts/security/usb-safety.sh +4 -4
- package/scripts/theme/extract-heic-frames.sh +114 -0
- package/scripts/theme/rebuild-themes.sh +31 -2
- package/scripts/theme/switch.sh +13 -6
- package/scripts/theme/wallpaper-sync.sh +297 -93
- package/scripts/tuning/linux.sh +2 -2
- package/scripts/tuning/macos.sh +2 -2
- package/scripts/version-sync.sh +74 -10
- package/dot_config/.module-manifest.json +0 -69
- package/dot_config/ai/identity.md +0 -23
- package/dot_config/ai/patterns/architect.md +0 -16
- package/dot_config/ai/patterns/hardener.md +0 -15
- package/dot_config/ai/patterns/refactor.md +0 -15
- package/dot_config/aider/aider.conf.yml +0 -32
- package/dot_config/alacritty/alacritty.toml.tmpl +0 -55
- package/dot_config/ansible/ansible.cfg +0 -11
- package/dot_config/atuin/config.toml.tmpl +0 -47
- package/dot_config/bat/config +0 -23
- package/dot_config/brave-flags.conf.tmpl +0 -7
- package/dot_config/btop/btop.conf +0 -16
- package/dot_config/btop/themes/tokyonight.theme +0 -34
- package/dot_config/bun/bunfig.toml.tmpl +0 -33
- package/dot_config/claude/mcp_servers.json +0 -20
- package/dot_config/containers/containers.conf +0 -14
- package/dot_config/curl/dot_curlrc +0 -18
- package/dot_config/dlv/config.yml +0 -39
- package/dot_config/docker/config.json +0 -15
- package/dot_config/dotfiles/agent-card.json +0 -29
- package/dot_config/dotfiles/agent-profiles.json +0 -92
- package/dot_config/dotfiles/boot/README.md +0 -13
- package/dot_config/dotfiles/grub/README.md +0 -13
- package/dot_config/dotfiles/lock/README.md +0 -13
- package/dot_config/dotfiles/mcp-lock.json +0 -33
- package/dot_config/dotfiles/mcp-policy.json +0 -52
- package/dot_config/dotfiles/mcp-registry.json +0 -47
- package/dot_config/dotfiles/model-registry.json +0 -20
- package/dot_config/dotfiles/policy-bundles.json +0 -38
- package/dot_config/dotfiles/prompt-registry.json +0 -16
- package/dot_config/dotfiles/versions.env +0 -18
- package/dot_config/duf/duf.conf +0 -6
- package/dot_config/duti/defaults.duti +0 -5
- package/dot_config/emoji/emoji.txt +0 -34
- package/dot_config/environment.d/50-ssh-agent.conf +0 -2
- package/dot_config/environment.d/90-wayland.conf +0 -19
- package/dot_config/fastfetch/config.jsonc +0 -28
- package/dot_config/firefox/user.js.tmpl +0 -58
- package/dot_config/fish/completions/dot-theme-sync.fish.tmpl +0 -9
- package/dot_config/fish/completions/dot.fish.tmpl +0 -115
- package/dot_config/fish/conf.d/000-perf-cache.fish +0 -56
- package/dot_config/fish/conf.d/aliases.fish.tmpl +0 -77
- package/dot_config/fish/conf.d/direnv.fish +0 -4
- package/dot_config/fish/conf.d/env.fish.tmpl +0 -48
- package/dot_config/fish/conf.d/functions.fish.tmpl +0 -22
- package/dot_config/fish/conf.d/init.fish.tmpl +0 -172
- package/dot_config/fish/conf.d/mise-activate.fish +0 -5
- package/dot_config/fish/config.fish.tmpl +0 -44
- package/dot_config/fish/fish_plugins +0 -1
- package/dot_config/fish/functions/_.fish +0 -3
- package/dot_config/fish/functions/_cached_eval.fish +0 -131
- package/dot_config/fish/functions/_cached_eval_clear.fish +0 -17
- package/dot_config/fish/functions/als.fish +0 -46
- package/dot_config/fish/functions/bg-upgrade.fish +0 -7
- package/dot_config/fish/functions/c.fish +0 -3
- package/dot_config/fish/functions/cat.fish +0 -9
- package/dot_config/fish/functions/d.fish +0 -7
- package/dot_config/fish/functions/dot.fish +0 -34
- package/dot_config/fish/functions/h.fish +0 -3
- package/dot_config/fish/functions/l.fish +0 -7
- package/dot_config/fish/functions/la.fish +0 -7
- package/dot_config/fish/functions/ll.fish +0 -7
- package/dot_config/fish/functions/log_error.fish +0 -13
- package/dot_config/fish/functions/log_info.fish +0 -13
- package/dot_config/fish/functions/lr.fish +0 -7
- package/dot_config/fish/functions/lra.fish +0 -7
- package/dot_config/fish/functions/ls.fish +0 -7
- package/dot_config/fish/functions/lt.fish +0 -7
- package/dot_config/fish/functions/lta.fish +0 -7
- package/dot_config/fish/functions/notify-run.fish +0 -11
- package/dot_config/fish/functions/q.fish +0 -3
- package/dot_config/fish/functions/silent-run.fish +0 -7
- package/dot_config/fish/functions/yy.fish +0 -8
- package/dot_config/flatpak/flatpak.list +0 -4
- package/dot_config/fontconfig/fonts.conf.tmpl +0 -57
- package/dot_config/foot/foot.ini.tmpl +0 -33
- package/dot_config/fuzzel/fuzzel.ini.tmpl +0 -18
- package/dot_config/fzf/fzf.zsh +0 -48
- package/dot_config/gem/gemrc +0 -9
- package/dot_config/gh/config.yml +0 -12
- package/dot_config/ghostty/config.tmpl +0 -165
- package/dot_config/git/allowed_signers.tmpl +0 -18
- package/dot_config/git/attributes +0 -12
- package/dot_config/git/commit-template +0 -10
- package/dot_config/git/hooks/executable_commit-msg +0 -146
- package/dot_config/git/ignore +0 -27
- package/dot_config/gnupg/gpg-agent.conf +0 -11
- package/dot_config/go/golangci.yml +0 -118
- package/dot_config/go/gopls.json +0 -30
- package/dot_config/goose/config.yaml +0 -29
- package/dot_config/gtk-3.0/gtk.css.tmpl +0 -184
- package/dot_config/gtk-3.0/settings.ini.tmpl +0 -27
- package/dot_config/gtk-4.0/gtk.css.tmpl +0 -252
- package/dot_config/gtk-4.0/settings.ini.tmpl +0 -18
- package/dot_config/htop/htoprc +0 -20
- package/dot_config/inputrc +0 -2
- package/dot_config/ipython/profile_default/ipython_config.py +0 -19
- package/dot_config/just/justfile +0 -122
- package/dot_config/k9s/config.yaml +0 -65
- package/dot_config/k9s/skins/catppuccin-mocha.yaml +0 -116
- package/dot_config/kanshi/config.tmpl +0 -22
- package/dot_config/karabiner/karabiner.json +0 -14
- package/dot_config/kitty/kitty.conf.tmpl +0 -53
- package/dot_config/lazydocker/config.yml +0 -186
- package/dot_config/lazygit/config.yml +0 -35
- package/dot_config/mako/config +0 -47
- package/dot_config/mas/masapps.txt +0 -5
- package/dot_config/micro/settings.json +0 -3
- package/dot_config/mimeapps.list +0 -77
- package/dot_config/minikube/config.json +0 -13
- package/dot_config/mise/config.toml +0 -99
- package/dot_config/mongosh/mongoshrc.js +0 -68
- package/dot_config/mpv/input.conf +0 -47
- package/dot_config/mpv/mpv.conf +0 -47
- package/dot_config/mycli/myclirc +0 -67
- package/dot_config/nano/nanorc +0 -28
- package/dot_config/ncdu/config +0 -12
- package/dot_config/niri/config.kdl.tmpl +0 -327
- package/dot_config/nushell/aliases.nu +0 -18
- package/dot_config/nushell/cached_eval.nu +0 -80
- package/dot_config/nushell/completions.nu.tmpl +0 -52
- package/dot_config/nushell/config.nu.tmpl +0 -86
- package/dot_config/nushell/env.nu.tmpl +0 -102
- package/dot_config/nushell/functions.nu.tmpl +0 -17
- package/dot_config/nvim/init.lua +0 -18
- package/dot_config/nvim/lazy-lock.json +0 -58
- package/dot_config/nvim/lua/config/autocmds.lua +0 -107
- package/dot_config/nvim/lua/config/keymaps.lua +0 -92
- package/dot_config/nvim/lua/config/lazy.lua +0 -44
- package/dot_config/nvim/lua/config/options.lua +0 -49
- package/dot_config/nvim/lua/plugins/ai.lua +0 -75
- package/dot_config/nvim/lua/plugins/coding.lua +0 -216
- package/dot_config/nvim/lua/plugins/completion.lua +0 -60
- package/dot_config/nvim/lua/plugins/dap.lua +0 -412
- package/dot_config/nvim/lua/plugins/editor.lua +0 -55
- package/dot_config/nvim/lua/plugins/git.lua +0 -10
- package/dot_config/nvim/lua/plugins/lsp.lua +0 -156
- package/dot_config/nvim/lua/plugins/markdown.lua +0 -18
- package/dot_config/nvim/lua/plugins/rust.lua +0 -34
- package/dot_config/nvim/lua/plugins/sessions.lua +0 -33
- package/dot_config/nvim/lua/plugins/ui.lua +0 -509
- package/dot_config/paru/paru.conf +0 -10
- package/dot_config/pip/pip.conf.tmpl +0 -32
- package/dot_config/powershell/Microsoft.PowerShell_profile.ps1.tmpl +0 -81
- package/dot_config/pueue/pueue.yml +0 -34
- package/dot_config/pypoetry/config.toml +0 -6
- package/dot_config/pyrightconfig.json +0 -5
- package/dot_config/raycast/README.md +0 -13
- package/dot_config/redis/redisclirc +0 -41
- package/dot_config/ripgrep/ripgreprc +0 -21
- package/dot_config/shell/00-core-paths.sh.tmpl +0 -141
- package/dot_config/shell/05-core-safety.sh +0 -48
- package/dot_config/shell/10-secrets.sh +0 -41
- package/dot_config/shell/40-fzf-defaults.sh.tmpl +0 -17
- package/dot_config/shell/40-ls-colors.sh +0 -49
- package/dot_config/shell/50-logic-functions-core.sh.tmpl +0 -11
- package/dot_config/shell/50-logic-functions.sh.tmpl +0 -11
- package/dot_config/shell/51-logic-functions-extra.sh.tmpl +0 -65
- package/dot_config/shell/90-ux-aliases.sh.tmpl +0 -121
- package/dot_config/shell/91-ux-aliases-lazy.sh.tmpl +0 -55
- package/dot_config/shell/Brewfile +0 -207
- package/dot_config/shell/Brewfile.cask +0 -92
- package/dot_config/shell/Brewfile.cli +0 -127
- package/dot_config/shell/README.md +0 -284
- package/dot_config/shell/als_data.txt.tmpl +0 -65
- package/dot_config/shell/custom/auto_ls.zsh +0 -20
- package/dot_config/shell/custom/context_suggest.zsh +0 -68
- package/dot_config/shell/custom/error_analysis.zsh +0 -45
- package/dot_config/sops/dot_sops.yaml +0 -23
- package/dot_config/starship.toml.tmpl +0 -202
- package/dot_config/swaylock/config +0 -43
- package/dot_config/systemd/user/dotfiles-maintenance.service +0 -8
- package/dot_config/systemd/user/dotfiles-maintenance.timer +0 -11
- package/dot_config/systemd/user/pueued.service +0 -12
- package/dot_config/systemd/user/ssh-agent.service +0 -12
- package/dot_config/task/Taskfile.yml +0 -86
- package/dot_config/tflint/tflint.hcl +0 -9
- package/dot_config/tmux/tmux.conf.tmpl +0 -223
- package/dot_config/topgrade.toml.tmpl +0 -54
- package/dot_config/user-dirs.dirs +0 -10
- package/dot_config/vscode/extensions.txt +0 -11
- package/dot_config/vscode/settings.json.tmpl +0 -82
- package/dot_config/waybar/config.jsonc.tmpl +0 -90
- package/dot_config/waybar/style.css.tmpl +0 -211
- package/dot_config/wezterm/wezterm.lua.tmpl +0 -64
- package/dot_config/wget/wgetrc +0 -12
- package/dot_config/xdg-desktop-portal/niri-portals.conf +0 -5
- package/dot_config/yarn/yarnrc.yml +0 -36
- package/dot_config/yazi/keymap.toml +0 -67
- package/dot_config/yazi/theme.toml +0 -102
- package/dot_config/yazi/yazi.toml +0 -40
- package/dot_config/zathura/zathurarc +0 -52
- package/dot_config/zellij/config.kdl.tmpl +0 -79
- package/dot_config/zsh/dot_zprofile +0 -7
- package/dot_config/zsh/dot_zshenv +0 -5
- package/dot_config/zsh/dot_zshrc.tmpl +0 -688
- package/dot_config/zsh/rc.d/00-alias-shims.zsh +0 -99
- package/dot_config/zsh/rc.d/05-ssh-agent.zsh +0 -18
- package/dot_config/zsh/rc.d/10-env.zsh.tmpl +0 -28
- package/dot_config/zsh/rc.d/20-zinit.zsh +0 -65
- package/dot_config/zsh/rc.d/30-options.zsh.tmpl +0 -214
- package/dot_config/zsh/rc.d/40-bell.zsh +0 -20
- package/dot_config/zsh/rc.d/50-login-fortune.zsh +0 -9
- package/dot_config/zsh/rc.d/99-alias-wrapper.zsh +0 -32
- package/dot_local/bin/executable_ai-update +0 -195
- package/dot_local/bin/executable_ai_core +0 -152
- package/dot_local/bin/executable_antigravity +0 -11
- package/dot_local/bin/executable_b64 +0 -84
- package/dot_local/bin/executable_bm +0 -79
- package/dot_local/bin/executable_cb +0 -39
- package/dot_local/bin/executable_dot +0 -636
- package/dot_local/bin/executable_dot-ai +0 -36
- package/dot_local/bin/executable_dot-bootstrap +0 -76
- package/dot_local/bin/executable_dot-launch-or-focus +0 -52
- package/dot_local/bin/executable_dot-load-benchmark +0 -31
- package/dot_local/bin/executable_dot-load-benchmark-pty +0 -77
- package/dot_local/bin/executable_dot-theme-sync +0 -952
- package/dot_local/bin/executable_dot_completion +0 -57
- package/dot_local/bin/executable_dtags +0 -28
- package/dot_local/bin/executable_epoch +0 -67
- package/dot_local/bin/executable_extract +0 -41
- package/dot_local/bin/executable_gbd +0 -52
- package/dot_local/bin/executable_gd +0 -42
- package/dot_local/bin/executable_git-ai-commit +0 -175
- package/dot_local/bin/executable_git-ai-diff +0 -169
- package/dot_local/bin/executable_gl +0 -101
- package/dot_local/bin/executable_hash +0 -161
- package/dot_local/bin/executable_hashsum +0 -160
- package/dot_local/bin/executable_hex +0 -115
- package/dot_local/bin/executable_jsonv +0 -78
- package/dot_local/bin/executable_jwt +0 -94
- package/dot_local/bin/executable_kill-port +0 -75
- package/dot_local/bin/executable_lorem +0 -118
- package/dot_local/bin/executable_mkscript +0 -35
- package/dot_local/bin/executable_monitor +0 -56
- package/dot_local/bin/executable_myip +0 -51
- package/dot_local/bin/executable_notify +0 -24
- package/dot_local/bin/executable_open +0 -38
- package/dot_local/bin/executable_pw +0 -27
- package/dot_local/bin/executable_rec-start +0 -46
- package/dot_local/bin/executable_rec-stop +0 -35
- package/dot_local/bin/executable_regex +0 -132
- package/dot_local/bin/executable_start-niri +0 -8
- package/dot_local/bin/executable_tmux-sessionizer +0 -314
- package/dot_local/bin/executable_tour +0 -177
- package/dot_local/bin/executable_up +0 -23
- package/dot_local/bin/executable_update +0 -142
- package/dot_local/bin/executable_uuid +0 -87
- package/dot_local/bin/executable_win +0 -32
- package/dot_local/bin/executable_yamlv +0 -57
- package/dot_local/share/bash-completion/completions/dot +0 -72
- 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 +0 -149
- package/dot_local/share/mise/plugins/kiro-cli/bin/executable_download +0 -64
- package/dot_local/share/mise/plugins/kiro-cli/bin/executable_install +0 -18
- package/dot_local/share/mise/plugins/kiro-cli/bin/executable_list-all +0 -13
- package/dot_local/share/wayland-sessions/niri.desktop.tmpl +0 -6
- package/dot_local/share/zsh/completions/.keep +0 -0
- package/dot_local/share/zsh/completions/_dot +0 -287
- package/scripts/ci/check-dangerous-chmod.sh +0 -19
- package/scripts/ci/check-deps-dev.sh +0 -236
- package/scripts/ci/check-insecure-tls.sh +0 -61
- package/scripts/ci/check-regression-traceability.sh +0 -67
- package/scripts/ci/dot-cli-startup-bench.sh +0 -126
- package/scripts/ci/install-chezmoi-verified.sh +0 -67
- package/scripts/ci/lint-reusable-pins.sh +0 -78
- package/scripts/ci/run-coverage.sh +0 -451
- package/scripts/ci/validate-chezmoidata.sh +0 -25
- package/scripts/ci/validate-ci-config.sh +0 -224
- package/scripts/ci/windows-smoke-test.ps1 +0 -136
- package/scripts/docs/build-manual.sh +0 -883
- package/scripts/docs/check-manual.sh +0 -213
- package/scripts/dot/lib/bento.sh +0 -50
- package/scripts/dot/lib/log.sh +0 -200
- package/scripts/dot/lib/platform.sh +0 -112
- package/scripts/dot/lib/ui.sh +0 -650
- package/scripts/dot/lib/utils.sh +0 -377
- package/scripts/maintenance/check-updates.sh +0 -131
- package/scripts/release/package-policy-bundles.sh +0 -125
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# Copyright (c) 2015-2026 Dotfiles. All rights reserved.
|
|
3
|
+
#
|
|
4
|
+
# `dot env emit` — render a portable workstation-environment
|
|
5
|
+
# manifest. The output is the canonical "what is installed on this
|
|
6
|
+
# machine + at what version + from which source" record that
|
|
7
|
+
# downstream tooling (CycloneDX SBOM aggregators, AgentSpec /
|
|
8
|
+
# AAIF agents, EU CRA compliance reports) consumes.
|
|
9
|
+
#
|
|
10
|
+
# v1 schema at docs/schema/dot-env-v1.json. Conforming to a fixed
|
|
11
|
+
# schema lets us re-render this manifest into any downstream format
|
|
12
|
+
# (AGENTS.md, devcontainer-feature.json, Brewfile, mise.toml) from
|
|
13
|
+
# a single source of truth — see docs/operations/MANIFEST.md.
|
|
14
|
+
#
|
|
15
|
+
# Usage:
|
|
16
|
+
# dot env emit # default: json
|
|
17
|
+
# dot env emit --format json
|
|
18
|
+
# dot env emit --output env.json
|
|
19
|
+
# dot env emit --pretty # default; --compact for one-line
|
|
20
|
+
#
|
|
21
|
+
# Exit codes:
|
|
22
|
+
# 0 manifest written / printed
|
|
23
|
+
# 1 bad usage
|
|
24
|
+
# 2 jq or mise missing
|
|
25
|
+
# 3 mise call failed
|
|
26
|
+
|
|
27
|
+
set -euo pipefail
|
|
28
|
+
|
|
29
|
+
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
30
|
+
# shellcheck source=../../../lib/dot/utils.sh
|
|
31
|
+
source "$SCRIPT_DIR/../../../lib/dot/utils.sh"
|
|
32
|
+
|
|
33
|
+
dot_env_emit() {
|
|
34
|
+
local format="json"
|
|
35
|
+
local output=""
|
|
36
|
+
local pretty=1
|
|
37
|
+
|
|
38
|
+
while (($#)); do
|
|
39
|
+
case "$1" in
|
|
40
|
+
--format)
|
|
41
|
+
format="${2:-}"
|
|
42
|
+
shift 2 || {
|
|
43
|
+
ui_err "--format needs a value"
|
|
44
|
+
return 1
|
|
45
|
+
}
|
|
46
|
+
;;
|
|
47
|
+
--format=*)
|
|
48
|
+
format="${1#*=}"
|
|
49
|
+
shift
|
|
50
|
+
;;
|
|
51
|
+
--output | -o)
|
|
52
|
+
output="${2:-}"
|
|
53
|
+
shift 2 || {
|
|
54
|
+
ui_err "--output needs a value"
|
|
55
|
+
return 1
|
|
56
|
+
}
|
|
57
|
+
;;
|
|
58
|
+
--output=*)
|
|
59
|
+
output="${1#*=}"
|
|
60
|
+
shift
|
|
61
|
+
;;
|
|
62
|
+
--pretty)
|
|
63
|
+
pretty=1
|
|
64
|
+
shift
|
|
65
|
+
;;
|
|
66
|
+
--compact)
|
|
67
|
+
pretty=0
|
|
68
|
+
shift
|
|
69
|
+
;;
|
|
70
|
+
-h | --help)
|
|
71
|
+
cat <<-EOF
|
|
72
|
+
Usage: dot env emit [--format <fmt>] [--output <path>] [--pretty|--compact]
|
|
73
|
+
|
|
74
|
+
Render the workstation-environment manifest (v1 schema).
|
|
75
|
+
|
|
76
|
+
Formats:
|
|
77
|
+
json (default) v1 canonical form per docs/schema/dot-env-v1.json
|
|
78
|
+
ndjson one JSON object per tool — easier to grep / pipe
|
|
79
|
+
|
|
80
|
+
Output:
|
|
81
|
+
--output FILE write to FILE (atomic mktemp + mv)
|
|
82
|
+
default stdout
|
|
83
|
+
|
|
84
|
+
Examples:
|
|
85
|
+
dot env emit # print to stdout
|
|
86
|
+
dot env emit --output env.json # write atomically
|
|
87
|
+
dot env emit --format ndjson | grep '^{"name":"node"'
|
|
88
|
+
EOF
|
|
89
|
+
return 0
|
|
90
|
+
;;
|
|
91
|
+
*)
|
|
92
|
+
ui_err "unknown flag: $1"
|
|
93
|
+
return 1
|
|
94
|
+
;;
|
|
95
|
+
esac
|
|
96
|
+
done
|
|
97
|
+
|
|
98
|
+
case "$format" in
|
|
99
|
+
json | ndjson) ;;
|
|
100
|
+
*)
|
|
101
|
+
ui_err "unsupported format: $format (json, ndjson)"
|
|
102
|
+
return 1
|
|
103
|
+
;;
|
|
104
|
+
esac
|
|
105
|
+
|
|
106
|
+
has_command jq || {
|
|
107
|
+
ui_err "jq required (brew install jq / apt install jq)"
|
|
108
|
+
return 2
|
|
109
|
+
}
|
|
110
|
+
has_command mise || {
|
|
111
|
+
ui_err "mise required (the manifest's source of truth)"
|
|
112
|
+
return 2
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
local mise_raw
|
|
116
|
+
mise_raw="$(mise ls --json 2>/dev/null)" || {
|
|
117
|
+
ui_err "mise ls --json failed"
|
|
118
|
+
return 3
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
# Static fields we want in every manifest: schema version + emit
|
|
122
|
+
# timestamp + emitter version + repo URL + the host fingerprint
|
|
123
|
+
# bits chezmoi already records (os, machine).
|
|
124
|
+
local emitter_version
|
|
125
|
+
emitter_version="$(grep -E '^dotfiles_version[[:space:]]*=' \
|
|
126
|
+
"$(resolve_chezmoi_source_dir)/.chezmoidata.toml" 2>/dev/null |
|
|
127
|
+
head -1 | sed -E 's/.*"([^"]+)".*/\1/' || echo "unknown")"
|
|
128
|
+
local timestamp
|
|
129
|
+
timestamp="$(date -u +%Y-%m-%dT%H:%M:%SZ)"
|
|
130
|
+
local os_type machine_arch
|
|
131
|
+
os_type="$(uname -s 2>/dev/null || echo unknown)"
|
|
132
|
+
machine_arch="$(uname -m 2>/dev/null || echo unknown)"
|
|
133
|
+
local hostname
|
|
134
|
+
hostname="$(uname -n 2>/dev/null || echo unknown)"
|
|
135
|
+
|
|
136
|
+
# Build the manifest. jq does the heavy lifting: take the raw
|
|
137
|
+
# `mise ls --json` shape (an object keyed by tool name → array of
|
|
138
|
+
# installed versions) and flatten to a normalised array of tool
|
|
139
|
+
# records. Each record carries: name, version, source (config
|
|
140
|
+
# file or "orphan"), requested (semver/range/latest spec), and
|
|
141
|
+
# install_path (auditable absolute path).
|
|
142
|
+
local body
|
|
143
|
+
body="$(printf '%s' "$mise_raw" | jq --arg ev "$emitter_version" \
|
|
144
|
+
--arg ts "$timestamp" \
|
|
145
|
+
--arg os "$os_type" \
|
|
146
|
+
--arg arch "$machine_arch" \
|
|
147
|
+
--arg host "$hostname" '
|
|
148
|
+
{
|
|
149
|
+
schema_version: "https://sebastienrousseau.github.io/dotfiles/schema/dot-env-v1.json",
|
|
150
|
+
manifest_version: "1.0.0",
|
|
151
|
+
emitted_at: $ts,
|
|
152
|
+
emitter: {
|
|
153
|
+
name: "dot env emit",
|
|
154
|
+
version: $ev,
|
|
155
|
+
repo: "github.com/sebastienrousseau/dotfiles"
|
|
156
|
+
},
|
|
157
|
+
host: {
|
|
158
|
+
hostname: $host,
|
|
159
|
+
os: $os,
|
|
160
|
+
arch: $arch
|
|
161
|
+
},
|
|
162
|
+
tools: [
|
|
163
|
+
to_entries[] as $t
|
|
164
|
+
| $t.value[]
|
|
165
|
+
| {
|
|
166
|
+
name: $t.key,
|
|
167
|
+
version: (.version // null),
|
|
168
|
+
source: (.source.path // "orphan"),
|
|
169
|
+
source_type: (.source.type // null),
|
|
170
|
+
requested_version: (.requested_version // null),
|
|
171
|
+
install_path: (.install_path // null),
|
|
172
|
+
active: (.active // false)
|
|
173
|
+
}
|
|
174
|
+
]
|
|
175
|
+
}
|
|
176
|
+
')"
|
|
177
|
+
|
|
178
|
+
local rendered
|
|
179
|
+
if [[ "$format" == "ndjson" ]]; then
|
|
180
|
+
# NDJSON: header object on line 1, one tool per subsequent line.
|
|
181
|
+
rendered="$(
|
|
182
|
+
printf '%s' "$body" |
|
|
183
|
+
jq -c '
|
|
184
|
+
({schema_version, manifest_version, emitted_at, emitter, host}),
|
|
185
|
+
(.tools[])'
|
|
186
|
+
)"
|
|
187
|
+
elif ((pretty)); then
|
|
188
|
+
rendered="$(printf '%s' "$body" | jq '.')"
|
|
189
|
+
else
|
|
190
|
+
rendered="$(printf '%s' "$body" | jq -c '.')"
|
|
191
|
+
fi
|
|
192
|
+
|
|
193
|
+
if [[ -n "$output" ]]; then
|
|
194
|
+
local tmp
|
|
195
|
+
tmp="$(mktemp "${output}.XXXXXX")"
|
|
196
|
+
printf '%s\n' "$rendered" >|"$tmp"
|
|
197
|
+
mv "$tmp" "$output"
|
|
198
|
+
ui_ok "manifest" "wrote $(printf '%s' "$rendered" | jq -r '.tools | length' 2>/dev/null || echo '?') tools → $output"
|
|
199
|
+
else
|
|
200
|
+
printf '%s\n' "$rendered"
|
|
201
|
+
fi
|
|
202
|
+
}
|
|
@@ -6,10 +6,10 @@
|
|
|
6
6
|
set -euo pipefail
|
|
7
7
|
|
|
8
8
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
9
|
-
# shellcheck source
|
|
10
|
-
source "$SCRIPT_DIR
|
|
11
|
-
# shellcheck source
|
|
12
|
-
source "$SCRIPT_DIR
|
|
9
|
+
# shellcheck source=../../../lib/dot/utils.sh
|
|
10
|
+
source "$SCRIPT_DIR/../../../lib/dot/utils.sh"
|
|
11
|
+
# shellcheck source=../../../lib/dot/log.sh
|
|
12
|
+
source "$SCRIPT_DIR/../../../lib/dot/log.sh"
|
|
13
13
|
|
|
14
14
|
dot_ui_command_banner "Fleet" "${1:-}"
|
|
15
15
|
|
|
@@ -18,7 +18,7 @@ _FLEET_EVENTS_FILE="$_FLEET_STATE_DIR/events.jsonl"
|
|
|
18
18
|
|
|
19
19
|
_fleet_enabled() {
|
|
20
20
|
local data_file
|
|
21
|
-
data_file="$(
|
|
21
|
+
data_file="$(resolve_chezmoi_source_dir)/.chezmoidata.toml"
|
|
22
22
|
if [[ -f "$data_file" ]] && grep -q '^enabled = true' "$data_file" 2>/dev/null; then
|
|
23
23
|
return 0
|
|
24
24
|
fi
|
|
@@ -27,7 +27,7 @@ _fleet_enabled() {
|
|
|
27
27
|
|
|
28
28
|
_fleet_node_id() {
|
|
29
29
|
local data_file node_id=""
|
|
30
|
-
data_file="$(
|
|
30
|
+
data_file="$(resolve_chezmoi_source_dir)/.chezmoidata.toml"
|
|
31
31
|
if [[ -f "$data_file" ]]; then
|
|
32
32
|
node_id="$(sed -n 's/^node_id = "\(.*\)"/\1/p' "$data_file" | head -1)"
|
|
33
33
|
fi
|
|
@@ -39,7 +39,7 @@ _fleet_node_id() {
|
|
|
39
39
|
|
|
40
40
|
_fleet_namespace() {
|
|
41
41
|
local data_file ns=""
|
|
42
|
-
data_file="$(
|
|
42
|
+
data_file="$(resolve_chezmoi_source_dir)/.chezmoidata.toml"
|
|
43
43
|
if [[ -f "$data_file" ]]; then
|
|
44
44
|
ns="$(sed -n 's/^namespace = "\(.*\)"/\1/p' "$data_file" | head -1)"
|
|
45
45
|
fi
|
|
@@ -67,7 +67,7 @@ _fleet_emit_event() {
|
|
|
67
67
|
# Forward to endpoint if configured
|
|
68
68
|
local endpoint=""
|
|
69
69
|
local data_file
|
|
70
|
-
data_file="$(
|
|
70
|
+
data_file="$(resolve_chezmoi_source_dir)/.chezmoidata.toml"
|
|
71
71
|
if [[ -f "$data_file" ]]; then
|
|
72
72
|
endpoint="$(sed -n 's/^endpoint = "\(.*\)"/\1/p' "$data_file" | head -1)"
|
|
73
73
|
fi
|
|
@@ -271,7 +271,7 @@ cmd_fleet_namespace() {
|
|
|
271
271
|
ui_ok "Active" "$ns"
|
|
272
272
|
|
|
273
273
|
local data_file
|
|
274
|
-
data_file="$(
|
|
274
|
+
data_file="$(resolve_chezmoi_source_dir)/.chezmoidata.toml"
|
|
275
275
|
if [[ -f "$data_file" ]]; then
|
|
276
276
|
echo ""
|
|
277
277
|
ui_section "Available Namespaces"
|
|
@@ -289,7 +289,7 @@ cmd_fleet_namespace() {
|
|
|
289
289
|
[[ -n "$new_ns" ]] || die "Usage: dot fleet namespace set <name>"
|
|
290
290
|
validate_name "$new_ns" "namespace"
|
|
291
291
|
local data_file
|
|
292
|
-
data_file="$(
|
|
292
|
+
data_file="$(resolve_chezmoi_source_dir)/.chezmoidata.toml"
|
|
293
293
|
if grep -q "^namespace = " "$data_file" 2>/dev/null; then
|
|
294
294
|
# Atomic write: render into a tempfile + mv so concurrent
|
|
295
295
|
# `dot fleet namespace set` callers can't corrupt the TOML.
|
|
@@ -322,7 +322,8 @@ cmd_fleet_enforce() {
|
|
|
322
322
|
shift || true
|
|
323
323
|
|
|
324
324
|
local repo_root
|
|
325
|
-
repo_root="$(
|
|
325
|
+
repo_root="$(resolve_chezmoi_source_dir)"
|
|
326
|
+
[[ -z "$repo_root" ]] && repo_root="$(resolve_source_dir)"
|
|
326
327
|
local profiles_file="$repo_root/dot_config/dotfiles/agent-profiles.json"
|
|
327
328
|
|
|
328
329
|
case "$subcommand" in
|
|
@@ -582,16 +583,21 @@ EOF
|
|
|
582
583
|
fi
|
|
583
584
|
}
|
|
584
585
|
|
|
585
|
-
|
|
586
|
+
# Throttle to `jobs` concurrent workers. `wait -n` (wait for the next
|
|
587
|
+
# job to finish) is bash 4.3+, but macOS ships bash 3.2 — there it
|
|
588
|
+
# silently fails and the throttle collapses to unbounded parallelism.
|
|
589
|
+
# Track PIDs and block on the oldest when at capacity instead; works on
|
|
590
|
+
# bash 3.2 and 4+ alike.
|
|
591
|
+
local _pids=()
|
|
586
592
|
while IFS=$'\t' read -r name ssh profile; do
|
|
587
593
|
[[ -n "$name" && -n "$ssh" ]] || continue
|
|
588
594
|
total=$((total + 1))
|
|
589
|
-
while ((
|
|
590
|
-
wait
|
|
591
|
-
|
|
595
|
+
while ((${#_pids[@]} >= jobs)); do
|
|
596
|
+
wait "${_pids[0]}" 2>/dev/null || true
|
|
597
|
+
_pids=("${_pids[@]:1}")
|
|
592
598
|
done
|
|
593
599
|
_fleet_apply_one "$name" "$ssh" "$effective_cmd" "$tmpdir" &
|
|
594
|
-
|
|
600
|
+
_pids+=("$!")
|
|
595
601
|
done <<<"$entries"
|
|
596
602
|
wait
|
|
597
603
|
|
|
@@ -25,10 +25,10 @@
|
|
|
25
25
|
set -euo pipefail
|
|
26
26
|
|
|
27
27
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
28
|
-
# shellcheck source
|
|
29
|
-
source "$SCRIPT_DIR
|
|
30
|
-
# shellcheck source
|
|
31
|
-
source "$SCRIPT_DIR
|
|
28
|
+
# shellcheck source=../../../lib/dot/ui.sh disable=SC1091
|
|
29
|
+
source "$SCRIPT_DIR/../../../lib/dot/ui.sh"
|
|
30
|
+
# shellcheck source=../../../lib/dot/utils.sh disable=SC1091
|
|
31
|
+
source "$SCRIPT_DIR/../../../lib/dot/utils.sh"
|
|
32
32
|
|
|
33
33
|
_init_resolve_url() {
|
|
34
34
|
local arg="$1"
|
|
@@ -6,8 +6,8 @@
|
|
|
6
6
|
set -euo pipefail
|
|
7
7
|
|
|
8
8
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
9
|
-
# shellcheck source
|
|
10
|
-
source "$SCRIPT_DIR
|
|
9
|
+
# shellcheck source=../../../lib/dot/utils.sh
|
|
10
|
+
source "$SCRIPT_DIR/../../../lib/dot/utils.sh"
|
|
11
11
|
|
|
12
12
|
dot_ui_command_banner "Lint" "${1:-}"
|
|
13
13
|
|
|
@@ -34,6 +34,11 @@ cmd_lint() {
|
|
|
34
34
|
files+=("$src_dir/install.sh")
|
|
35
35
|
fi
|
|
36
36
|
|
|
37
|
+
# Post-Phase-4b chezmoi-tracked content lives under defaults/.
|
|
38
|
+
local chezmoi_src
|
|
39
|
+
chezmoi_src="$(resolve_chezmoi_source_dir)"
|
|
40
|
+
[[ -z "$chezmoi_src" ]] && chezmoi_src="$src_dir"
|
|
41
|
+
|
|
37
42
|
# dot_local/bin/executable_* scripts (shell scripts only)
|
|
38
43
|
while IFS= read -r -d '' f; do
|
|
39
44
|
if file "$f" 2>/dev/null | grep -qiE 'shell|bash|sh'; then
|
|
@@ -41,12 +46,12 @@ cmd_lint() {
|
|
|
41
46
|
elif head -1 "$f" 2>/dev/null | grep -qE '^#!.*(bash|sh)'; then
|
|
42
47
|
files+=("$f")
|
|
43
48
|
fi
|
|
44
|
-
done < <(find "$
|
|
49
|
+
done < <(find "$chezmoi_src/dot_local/bin" -name 'executable_*' -type f -print0 2>/dev/null)
|
|
45
50
|
|
|
46
51
|
# .chezmoitemplates/*.sh (non-.tmpl shell scripts)
|
|
47
52
|
while IFS= read -r -d '' f; do
|
|
48
53
|
files+=("$f")
|
|
49
|
-
done < <(find "$
|
|
54
|
+
done < <(find "$chezmoi_src/.chezmoitemplates" -name '*.sh' -type f -print0 2>/dev/null)
|
|
50
55
|
|
|
51
56
|
local total=${#files[@]}
|
|
52
57
|
if [[ "$total" -eq 0 ]]; then
|
|
@@ -16,8 +16,8 @@
|
|
|
16
16
|
set -euo pipefail
|
|
17
17
|
|
|
18
18
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
19
|
-
# shellcheck source
|
|
20
|
-
source "$SCRIPT_DIR
|
|
19
|
+
# shellcheck source=../../../lib/dot/utils.sh
|
|
20
|
+
source "$SCRIPT_DIR/../../../lib/dot/utils.sh"
|
|
21
21
|
|
|
22
22
|
MANUAL_URL="${DOTFILES_MANUAL_URL:-https://sebastienrousseau.github.io/dotfiles/manual}"
|
|
23
23
|
CACHE_DIR="${XDG_CACHE_HOME:-$HOME/.cache}/dotfiles/manual"
|
|
@@ -66,7 +66,7 @@ resolve_source() {
|
|
|
66
66
|
echo "$src_dir/$fname"
|
|
67
67
|
return 0
|
|
68
68
|
fi
|
|
69
|
-
ui_err "manual" "local build not found at $src_dir/$fname — run bash
|
|
69
|
+
ui_err "manual" "local build not found at $src_dir/$fname — run bash tools/docs/build-manual.sh"
|
|
70
70
|
return 1
|
|
71
71
|
fi
|
|
72
72
|
|
|
@@ -6,10 +6,10 @@
|
|
|
6
6
|
set -euo pipefail
|
|
7
7
|
|
|
8
8
|
_META_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
9
|
-
# shellcheck source
|
|
10
|
-
source "$_META_DIR
|
|
11
|
-
# shellcheck source
|
|
12
|
-
source "$_META_DIR
|
|
9
|
+
# shellcheck source=../../../lib/dot/utils.sh
|
|
10
|
+
source "$_META_DIR/../../../lib/dot/utils.sh"
|
|
11
|
+
# shellcheck source=../../../lib/dot/log.sh
|
|
12
|
+
source "$_META_DIR/../../../lib/dot/log.sh"
|
|
13
13
|
# shellcheck source=agent.sh
|
|
14
14
|
source "$_META_DIR/agent.sh"
|
|
15
15
|
|
|
@@ -92,7 +92,12 @@ cmd_docs() {
|
|
|
92
92
|
|
|
93
93
|
cmd_learn() {
|
|
94
94
|
local dot_bin
|
|
95
|
-
|
|
95
|
+
# Post-Phase-4b: dot_local/ lives under defaults/. Legacy layout
|
|
96
|
+
# (older deployments before .chezmoiroot activation) kept it at
|
|
97
|
+
# repo root — probe both.
|
|
98
|
+
dot_bin="$(dirname "${BASH_SOURCE[0]}")/../../../defaults/dot_local/bin"
|
|
99
|
+
[[ -f "$dot_bin/executable_tour" ]] ||
|
|
100
|
+
dot_bin="$(dirname "${BASH_SOURCE[0]}")/../../../dot_local/bin"
|
|
96
101
|
if [ -f "$dot_bin/executable_tour" ]; then
|
|
97
102
|
exec bash "$dot_bin/executable_tour" "$@"
|
|
98
103
|
fi
|
|
@@ -176,7 +181,8 @@ cmd_mcp() {
|
|
|
176
181
|
;;
|
|
177
182
|
registry)
|
|
178
183
|
local repo_root registry_file json_mode=0
|
|
179
|
-
repo_root="$(
|
|
184
|
+
repo_root="$(resolve_chezmoi_source_dir)"
|
|
185
|
+
[[ -z "$repo_root" ]] && repo_root="$(require_source_dir)"
|
|
180
186
|
registry_file="${MCP_REGISTRY_CONFIG:-$repo_root/dot_config/dotfiles/mcp-registry.json}"
|
|
181
187
|
if [[ "${1:-}" == "registry" ]]; then
|
|
182
188
|
shift || true
|
|
@@ -6,8 +6,8 @@
|
|
|
6
6
|
set -euo pipefail
|
|
7
7
|
|
|
8
8
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
9
|
-
# shellcheck source
|
|
10
|
-
source "$SCRIPT_DIR
|
|
9
|
+
# shellcheck source=../../../lib/dot/utils.sh
|
|
10
|
+
source "$SCRIPT_DIR/../../../lib/dot/utils.sh"
|
|
11
11
|
|
|
12
12
|
PATTERN_DIR="${XDG_CONFIG_HOME:-$HOME/.config}/ai/patterns"
|
|
13
13
|
mkdir -p "$PATTERN_DIR"
|
|
@@ -43,10 +43,10 @@
|
|
|
43
43
|
set -euo pipefail
|
|
44
44
|
|
|
45
45
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
46
|
-
# shellcheck source
|
|
47
|
-
source "$SCRIPT_DIR
|
|
48
|
-
# shellcheck source
|
|
49
|
-
source "$SCRIPT_DIR
|
|
46
|
+
# shellcheck source=../../../lib/dot/ui.sh disable=SC1091
|
|
47
|
+
source "$SCRIPT_DIR/../../../lib/dot/ui.sh"
|
|
48
|
+
# shellcheck source=../../../lib/dot/utils.sh disable=SC1091
|
|
49
|
+
source "$SCRIPT_DIR/../../../lib/dot/utils.sh"
|
|
50
50
|
|
|
51
51
|
_registry_default_url() {
|
|
52
52
|
printf '%s\n' "https://sebastienrousseau.github.io/dotfiles/registry.json"
|
|
@@ -6,10 +6,10 @@
|
|
|
6
6
|
set -euo pipefail
|
|
7
7
|
|
|
8
8
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
9
|
-
# shellcheck source
|
|
10
|
-
source "$SCRIPT_DIR
|
|
11
|
-
# shellcheck source
|
|
12
|
-
source "$SCRIPT_DIR
|
|
9
|
+
# shellcheck source=../../../lib/dot/utils.sh
|
|
10
|
+
source "$SCRIPT_DIR/../../../lib/dot/utils.sh"
|
|
11
|
+
# shellcheck source=../../../lib/dot/log.sh
|
|
12
|
+
source "$SCRIPT_DIR/../../../lib/dot/log.sh"
|
|
13
13
|
|
|
14
14
|
DOTFILES_DIR="${DOTFILES_DIR:-$HOME/.dotfiles}"
|
|
15
15
|
BACKUP_DIR="${XDG_DATA_HOME:-$HOME/.local/share}/dotfiles/backups"
|
|
@@ -6,8 +6,8 @@
|
|
|
6
6
|
set -euo pipefail
|
|
7
7
|
|
|
8
8
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
9
|
-
# shellcheck source
|
|
10
|
-
source "$SCRIPT_DIR
|
|
9
|
+
# shellcheck source=../../../lib/dot/utils.sh
|
|
10
|
+
source "$SCRIPT_DIR/../../../lib/dot/utils.sh"
|
|
11
11
|
# shellcheck source=../../lib/secrets_provider.sh
|
|
12
12
|
source "$SCRIPT_DIR/../../lib/secrets_provider.sh"
|
|
13
13
|
|
|
@@ -15,7 +15,8 @@ dot_ui_command_banner "Secrets" "${1:-}"
|
|
|
15
15
|
|
|
16
16
|
dot_data_file() {
|
|
17
17
|
local src_dir
|
|
18
|
-
src_dir="$(
|
|
18
|
+
src_dir="$(resolve_chezmoi_source_dir)"
|
|
19
|
+
[[ -z "$src_dir" ]] && src_dir="$(require_source_dir)"
|
|
19
20
|
printf "%s\n" "$src_dir/.chezmoidata.toml"
|
|
20
21
|
}
|
|
21
22
|
|
|
@@ -6,8 +6,8 @@
|
|
|
6
6
|
set -euo pipefail
|
|
7
7
|
|
|
8
8
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
9
|
-
# shellcheck source
|
|
10
|
-
source "$SCRIPT_DIR
|
|
9
|
+
# shellcheck source=../../../lib/dot/utils.sh
|
|
10
|
+
source "$SCRIPT_DIR/../../../lib/dot/utils.sh"
|
|
11
11
|
|
|
12
12
|
dot_ui_command_banner "Security" "${1:-}"
|
|
13
13
|
|
|
@@ -6,8 +6,8 @@
|
|
|
6
6
|
set -euo pipefail
|
|
7
7
|
|
|
8
8
|
_TOOLS_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
9
|
-
# shellcheck source
|
|
10
|
-
source "$_TOOLS_DIR
|
|
9
|
+
# shellcheck source=../../../lib/dot/utils.sh
|
|
10
|
+
source "$_TOOLS_DIR/../../../lib/dot/utils.sh"
|
|
11
11
|
# shellcheck source=aliases.sh
|
|
12
12
|
source "$_TOOLS_DIR/aliases.sh"
|
|
13
13
|
|
|
@@ -348,6 +348,16 @@ cmd_log_rotate() {
|
|
|
348
348
|
}
|
|
349
349
|
|
|
350
350
|
cmd_env_mise() {
|
|
351
|
+
# `dot env emit` is a separate sub-handler — it doesn't need mise
|
|
352
|
+
# at command-time, only when actually invoked (the script checks).
|
|
353
|
+
if [[ "${1:-}" == "emit" ]]; then
|
|
354
|
+
shift
|
|
355
|
+
# shellcheck source=./env-emit.sh
|
|
356
|
+
source "$(require_source_dir)/scripts/dot/commands/env-emit.sh"
|
|
357
|
+
dot_env_emit "$@"
|
|
358
|
+
return $?
|
|
359
|
+
fi
|
|
360
|
+
|
|
351
361
|
if ! has_command mise; then
|
|
352
362
|
ui_err "mise not installed (required for dot env)"
|
|
353
363
|
exit 1
|
|
@@ -425,7 +435,7 @@ cmd_env_mise() {
|
|
|
425
435
|
|
|
426
436
|
cmd_profile() {
|
|
427
437
|
local data_file
|
|
428
|
-
data_file="$(
|
|
438
|
+
data_file="$(resolve_chezmoi_source_dir)/.chezmoidata.toml"
|
|
429
439
|
if [[ ! -f "$data_file" ]]; then
|
|
430
440
|
die ".chezmoidata.toml not found"
|
|
431
441
|
fi
|