Fallout-build / Fallout-build/Fallout

Replace ConsoleUtility prompts with Spectre.Console (already a dependency)

Open
#353 1 comment 0 reactions 0 assignees View on GitHub
enhancement target/vCurrent
Dominant language
C#
Stars
154
Forks
19
Avg merge
1d 22h
Merged PRs (30d)
15

Description

**Tier 1 — Replace.** `src/Fallout.Build/Utilities/ConsoleUtility.cs` (~143 LOC) hand-reimplements interactive prompts — `PromptForInput()`, `PromptForChoice()` (arrow-key selection), `ReadSecret()` — with raw console state management.

### Replace with
[**Spectre.Console**](https://www.nuget.org/packages/Spectre.Console) — **already referenced** in `Directory.Packages.props` (v0.49.1). Use `TextPrompt`, `SelectionPrompt`, and secret-masked prompts.

### Why this is the easiest win
Dependency already present, the code is internal, and ~80 LOC of manual console handling simply disappears with better cross-platform behaviour.

### Non-breaking
Internal utility — swap implementation, keep callers working. Target 2026 directly.

### Acceptance
- [ ] `PromptForInput` / `PromptForChoice` / `ReadSecret` backed by Spectre.Console
- [ ] Manual `Console` cursor/key handling removed
- [ ] Setup/secrets CLI flows (`Program.Setup.cs`, `Program.Secrets.cs`) behave identically

_From dependency-consolidation audit, 2026-06-02._

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.