Commit Graph

66 Commits

Author SHA1 Message Date
MDietermann
c056697721 feat(fonts): implement PlanForce to reinstall all fonts via yay 2026-04-14 21:56:23 +02:00
MDietermann
c75afade8c feat(gittools): implement PlanForce to reinstall all packages 2026-04-14 21:55:43 +02:00
MDietermann
58bd532dba feat(packages): implement PlanForce to reinstall all packages
Adds Reinstall method to PackageManager and AURHelper interfaces
so modules can invoke the concrete Reinstall helpers behind the
interface. *Pacman and *Yay already satisfy it.
2026-04-14 21:55:08 +02:00
MDietermann
613363e993 feat(engine): add RunOptions.Force to skip Detect and call PlanForce 2026-04-14 21:51:29 +02:00
MDietermann
d525646f3a feat(module): add PlanForce to Module interface with stubs 2026-04-14 21:49:09 +02:00
MDietermann
e6e12ab5fd feat(platform): add Reinstall helpers to Pacman and Yay 2026-04-14 21:44:47 +02:00
MDietermann
c579375c83 style: gofmt 7 test files 2026-04-14 21:30:50 +02:00
MDietermann
929cee1643 chore: rename module to gitlab.hive-brain.de/MDietermann/Archduino 2026-04-14 14:30:14 +02:00
MDietermann
c710ed81df feat(doctor): add archduino doctor subcommand 2026-04-14 14:19:12 +02:00
MDietermann
2464e70cd2 feat(newproject): add archduino new project scaffolder 2026-04-14 14:16:07 +02:00
MDietermann
bbaa21a6bf feat(config): add Scaffolding.Boards typed input with 6 defaults 2026-04-14 14:08:54 +02:00
MDietermann
698271a235 fix(theming): restore gruvbox as default via Default() helper 2026-04-14 13:42:58 +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
12c502d48a feat(theming): add catppuccin, dracula, nord, tokyonight themes 2026-04-14 13:25:58 +02:00
MDietermann
770bdcf3a2 feat(theming): integrate NvChad chadrc rewrite into Apply 2026-04-14 13:14:47 +02:00
MDietermann
4fa580f226 feat(theming): apply updates overlay theme_overrides.__active 2026-04-14 13:11:34 +02:00
MDietermann
b422402ffc feat(theming): apply writes four tool configs to $HOME 2026-04-14 13:07:08 +02:00
MDietermann
b628898c6d feat(theming): add theme discovery with gruvbox assets 2026-04-14 12:56:09 +02:00
MDietermann
fcbd2201b3 fix(renode): pin wokwi-cli to v0.26.1 (v0.28.1 does not exist) 2026-04-14 12:19:32 +02:00
MDietermann
66f02edfb2 feat(modules): port renode module (AUR + arduino-sim + wokwi-cli) to Go 2026-04-14 12:13:42 +02:00
MDietermann
daa20b1dca fix(neovim): write mappings.lua to lua/mappings.lua per NvChad convention 2026-04-14 10:09:26 +02:00
MDietermann
8677a1b950 feat(modules): port neovim module (NvChad + Archduino Lua assets) to Go 2026-04-14 10:08:06 +02:00
MDietermann
e2637bc093 feat(config): add Neovim and Renode typed inputs 2026-04-14 10:01:40 +02:00
MDietermann
e830e4dfda feat(tui): add NvChadTheme field and ThemeByID helper 2026-04-14 09:58:04 +02:00
MDietermann
adfc9232ac feat(platform): add WriteUserFile atomic user-space writer 2026-04-14 09:53:03 +02:00
MDietermann
7914b7ef51 fix(installer): replace orphaned neofetch with fastfetch, surface stderr on Run failure
- neofetch was removed from Arch's official repos; fastfetch is the maintained replacement.
- ExecRunner.Run previously discarded stderr, so any 'sudo pacman' failure surfaced only as 'exit status 1'. Now the returned error includes the captured stderr (matching what Output already did).
2026-04-14 09:27:09 +02:00
MDietermann
7de9d6c72c feat(modules): port shellconfig module to Go 2026-04-14 09:10:16 +02:00
MDietermann
99db34d70f feat(modules): port arduino-cli module to Go 2026-04-14 09:07:44 +02:00
MDietermann
9650cd0c82 feat(modules): port themes module to Go 2026-04-14 09:03:49 +02:00
MDietermann
78ad784c7e feat(modules): port zellij module to Go 2026-04-14 08:59:28 +02:00
MDietermann
4b3ce22491 feat(modules): port fonts module (AUR) to Go 2026-04-14 08:56:22 +02:00
MDietermann
1735f66bf0 feat(modules): port zsh module (zsh + oh-my-zsh + plugins) to Go 2026-04-14 08:52:27 +02:00
MDietermann
6dbfc41ce2 feat(modules): port yazi module to Go 2026-04-14 08:47:00 +02:00
MDietermann
f5a45c4be6 feat(modules): port starship module to Go 2026-04-14 08:47:00 +02:00
MDietermann
2b30b371e4 feat(modules): port gittools (lazygit) module to Go 2026-04-14 08:46:49 +02:00
MDietermann
cba883376a feat(modules): port packages module to Go 2026-04-14 08:43:22 +02:00
MDietermann
ffd18c5382 feat(config): add typed module-input fields with defaults 2026-04-14 08:40:29 +02:00
MDietermann
fcc24b99b2 feat(platform): add AURHelper with yay bootstrap and install 2026-04-14 08:35:46 +02:00
MDietermann
1903217b5f feat(platform): add GitClient helper with idempotent EnsureRepo 2026-04-14 08:32:04 +02:00
MDietermann
3f4223879b feat(platform): add tar.gz and zip extract helpers with traversal guard 2026-04-14 08:29:42 +02:00
MDietermann
2d73114b5f feat(platform): add atomic HTTP download helper 2026-04-14 08:25:22 +02:00
MDietermann
afed8ab600 feat(platform): add textblock helper for idempotent config-file blocks 2026-04-14 08:21:38 +02:00
MDietermann
83bb622232 perf(tui): cache Detect+Plan results in wizard renderPlan 2026-04-14 08:18:38 +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
ea5667e040 test(tui): integration smoke — dashboard runs hello module end-to-end 2026-04-13 22:20:08 +02:00
MDietermann
7baf0fceaa feat(tui): add dashboard.Run bridging engine to Bubble Tea 2026-04-13 22:11:54 +02:00
MDietermann
5c5076f1f1 fix(tui): guard against late Progress/Log after DoneMsg; drop dead quitting field 2026-04-13 22:09:08 +02:00
MDietermann
feb01242f2 feat(tui): add Bubble Tea dashboard model for Apply phase 2026-04-13 22:02:38 +02:00
MDietermann
e7aa75735d refactor(tui): use strconv.Atoi in parseIntClamp, drop spurious error return 2026-04-13 22:00:49 +02:00
MDietermann
394fb33d0c fix(tui): short-circuit wizard.Run on cancelled context before opening TTY 2026-04-13 21:52:50 +02:00