Convert remaining Fallout.Cli commands to IFalloutCommand dispatch (#392)#476
Draft
ChrisonSimtian wants to merge 4 commits into
Draft
Convert remaining Fallout.Cli commands to IFalloutCommand dispatch (#392)#476ChrisonSimtian wants to merge 4 commits into
ChrisonSimtian wants to merge 4 commits into
Conversation
Extract Program.Trigger into a real IFalloutCommand (async ExecuteAsync per the merged foundation contract), register the type directly, and drop the DelegateCommand shim + the Program.Trigger.cs partial. Test re-homed to Fallout.Cli.Specs. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Extract the shared logic the converted commands depend on into injectable services: ConfigurationReader (build-script config parsing), PackageManager (package add/replace), BuildScaffolder (build scripts/solution wiring, incl. the .slnx writer), CakeConverter (Cake script conversion), and CliConventions/ToolBanner (banner + script-name helpers). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Fallout-build#392) Convert complete, get-configuration, add-package, update, secrets, cake-convert, cake-clean, setup, and the navigation cluster into real IFalloutCommand types (async ExecuteAsync, DI-injected services), register them directly, and delete the DelegateCommand shims + every Program.X.cs partial. Program is now a thin entry point (DI wiring + root resolution). Commands and new CLI interfaces are internal, matching the merged foundation. Derived from main's current handlers, so the .slnx setup support, net10.0 target, and nuke->fallout rebrand are preserved. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Add async specs for the converted commands (Fallout.Cli.Specs/Commands, *Specs naming) plus a FakeConsolePrompts double and ConfigurationReader specs, and repoint the existing CakeConversion / UpdateSolutionFileContent specs at their new service homes (CakeConverter, PackageManager, BuildScaffolder). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Second step of the
Fallout.Clicommand-dispatch migration (#392). Builds on the merged foundation (#448); supersedes fork-only PRs #17–#26, which were collapsed into one and re-authored against the current (async/internal) contract.Converts the remaining legacy
Program.Xhandlers into realIFalloutCommandtypes and reducesProgramto a thin entry point.What
complete,get-configuration,add-package,update,secrets,cake-convert,cake-clean,setup, and thenavigationcluster → real command types (ExecuteAsync, DI-injected services)ConfigurationReader,PackageManager,BuildScaffolder,CakeConverter,CliConventionsDelegateCommandshims + everyProgram.X.cspartialFallout.Cli.Specs(async); existing specs repointed to the new service homesNot breaking / no regressions
Derived from
main's current handlers, so these are preserved:.slnxsetup support,net10.0target, the_FALLOUT_VERSION_template token, and the nuke→fallout rebrand.Fallout.Cli.Specs46/46 green; runtime dispatch verified (all 15 commands resolve via DI).Notes
Programregistration + config services couple the commands (CakeConvertdepends onSetupCommand), so it lands as 4 logical commits.Task.FromResult(...)(as the existingDelegateCommanddid); only genuinely async work is truly async.🤖 Generated with Claude Code