Commit Graph

14 Commits

Author SHA1 Message Date
MDietermann
929cee1643 chore: rename module to gitlab.hive-brain.de/MDietermann/Archduino 2026-04-14 14:30:14 +02:00
MDietermann
a203cdfe89 feat(cmd): add theme/new/doctor subcommands; install applies theme 2026-04-14 14:22:33 +02:00
MDietermann
4f7411ca95 refactor: retire tui.BuiltinThemes in favor of theming.List
Make internal/theming.List the single source of truth for themes:

- Drop tui.BuiltinThemes, tui.ThemeByID, and the NvChadTheme field on
  tui.Theme. tui.Theme is now a thin {ID, Name} display value.
- Wizard populates its dropdown from theming.List() and uses
  DisplayName for the label.
- neovim.resolvedTheme uses theming.Get (with theming.List()[0] as a
  fallback) instead of a caller-supplied []tui.Theme slice.
- neovim.New signature loses the themes []tui.Theme parameter; update
  cmd/archduino/main.go and all neovim tests to match.

Break the resulting neovim→theming import cycle (theming previously
imported neovim for WriteChadrc) by inverting the dependency:
theming exposes a ChadrcWriter function hook, and neovim registers
its WriteChadrc into it via package init. The theming test stubs
ChadrcWriter directly to exercise the chadrc-rewrite branch without
pulling neovim in and re-creating the cycle.

Delete the now-obsolete TestBuiltinThemesCarryNvChadName / TestThemeByID*
tests in internal/tui/state_test.go — their coverage lives in the
theming package's own tests.
2026-04-14 13:35:10 +02:00
MDietermann
bf2d8de82c feat(cmd): register neovim and renode modules in install command 2026-04-14 12:16:05 +02:00
MDietermann
e0c1fc3c5d feat(cmd): thread themeID through buildRegistry, rebuild post-wizard
Adds a themeID parameter to buildRegistry (unused in the body until
Task 7 wires neovim.New) and rebuilds the registry after the wizard
returns with finalState.ThemeID, so the dashboard runs against a
registry configured with the user's theme selection. The pre-wizard
call passes "" since only the dashboard path consumes theme-aware
modules.
2026-04-14 10:03:19 +02:00
MDietermann
fa946e9403 feat(cmd): register all Plan 3a modules in install command
Replace the init()-time hello toy-module registration with a
buildRegistry(cfg) helper called from the install RunE that wires the
ten Plan 3a modules (packages, gittools, starship, yazi, zsh, fonts,
zellij, themes, arduinocli, shellconfig) against a shared ExecRunner,
Pacman, Yay, and GitClient.
2026-04-14 09:15:54 +02:00
MDietermann
2ebaa6b5c6 fix: address Plan 2 final-review findings
- tui/doc.go: remove teatest blank import (test harness in prod binary)
- cmd: honor wizard HaltOnError toggle in addition to --halt-on-error flag
- cmd: wire SIGINT/SIGTERM to root context via signal.NotifyContext
- dashboard/run: derive engine context and cancel on tea.Program exit
  so the engine goroutine does not outlive Run
2026-04-13 22:26:54 +02:00
MDietermann
4f3d736bd7 refactor(cmd): drop err=runErr reassignment, return runErr directly 2026-04-13 22:19:09 +02:00
MDietermann
341250d8f4 feat(cmd): wire TUI wizard and dashboard into install subcommand 2026-04-13 22:13:52 +02:00
MDietermann
8b43a0f273 fix: address final-review findings before closing Plan 1
- privilege: wire sudo -v to real stdin/stdout/stderr so it can prompt
- cmd: validate --only/--skip IDs against registry (prevents silent
  run-all on typo); gate install to Arch-only (spec requirement);
  mark --only and --skip mutually exclusive
- platform: Pacman.Update now runs -Syu --noconfirm, not -Sy (avoids
  Arch partial-upgrade anti-pattern)
- test/integration: trap-clean the named docker volume on any exit
- go.mod: tidy — yaml.v3 is a direct dep
2026-04-13 21:35:14 +02:00
MDietermann
3a4855b92a feat(modules): add hello toy module as engine smoke test 2026-04-13 20:31:43 +02:00
MDietermann
7a3ebbb146 docs(cmd): clarify why !noTUI branch prints the fallback notice 2026-04-13 20:18:07 +02:00
MDietermann
7a382c9bdd feat(cmd): wire install subcommand to engine with plain reporter 2026-04-13 20:13:50 +02:00
MDietermann
5b8de40b4c chore: bootstrap Go project with cobra skeleton 2026-04-13 18:24:37 +02:00