Skip to content

Conversation

@thomhurst
Copy link
Owner

Summary

  • Add BrewCliScraper to OptionsGenerator for generating Homebrew CLI service interfaces and options classes
  • Create ModularPipelines.Homebrew project skeleton with proper project references
  • Support for macOS and Linux platforms (Homebrew is not available on Windows)

This completes the package manager tooling by adding Homebrew alongside the existing Chocolatey and WinGet packages.

Changes

  • tools/ModularPipelines.OptionsGenerator/src/ModularPipelines.OptionsGenerator/Scrapers/Cli/BrewCliScraper.cs - New scraper for parsing Homebrew CLI help output
  • tools/ModularPipelines.OptionsGenerator/src/ModularPipelines.OptionsGenerator/Program.cs - Register BrewCliScraper in DI
  • src/ModularPipelines.Homebrew/ModularPipelines.Homebrew.csproj - New project
  • ModularPipelines.sln - Add project to solution

Test plan

  • Project builds successfully
  • Run OptionsGenerator on macOS/Linux with Homebrew installed to generate service code
  • Generated code compiles and works with Homebrew commands

Closes #1995

🤖 Generated with Claude Code

Add Homebrew CLI scraper to OptionsGenerator and create project skeleton for
ModularPipelines.Homebrew. The scraper generates service interfaces and options
classes when run on macOS/Linux systems with Homebrew installed.

- Add BrewCliScraper for parsing Homebrew CLI help output
- Create ModularPipelines.Homebrew project structure
- Register scraper in OptionsGenerator DI container
- Support for macOS and Linux platforms

Closes #1995

Co-Authored-By: Claude Opus 4.5 <[email protected]>
@thomhurst
Copy link
Owner Author

Summary

Adds Homebrew CLI scraper to OptionsGenerator and creates the ModularPipelines.Homebrew project skeleton.

Critical Issues

None found

Suggestions

  1. Platform Detection - IsAvailableAsync override properly excludes Windows, consistent with Chocolatey and WinGet scrapers
  2. Regex Patterns - BrewOptionPattern handles Homebrew-specific cases including [no-] prefixes
  3. Code Organization - Follows CliScraperBase template pattern with proper overrides and GeneratedRegex attributes
  4. Project File - Minimal csproj matches existing tool packages

Verdict

APPROVE - No critical issues. Implementation follows established patterns and is properly integrated.

@thomhurst thomhurst merged commit 093511b into main Jan 13, 2026
10 of 12 checks passed
@thomhurst thomhurst deleted the feature/1995-homebrew-package branch January 13, 2026 01:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add platform-specific package manager contexts (Brew, Chocolatey, Winget)

2 participants