Commit graph

9 commits

Author SHA1 Message Date
Vito Castellano
f4e9c32987
feat(brewfile): add remote Brewfile support via HTTPS URLs
Users can now load Brewfiles from remote URLs:
  bbrew -f https://example.com/Brewfile

Remote files are downloaded to a temp file and auto-cleaned on exit.
Only HTTPS URLs are supported for security.
2025-12-29 16:52:26 +01:00
Vito Castellano
fa7996453f
feat(cli): add --version and --help flags
Add -v/--version flag to display version information.
Add custom --help message with usage examples.
Improve CLI user experience with clear documentation.
2025-12-29 15:32:34 +01:00
Vito Castellano
aeee3b93b1
feat: add Brewfile mode for curated package collections (#37)
* feat: add Brewfile mode for curated package collections

This commit introduces Brewfile mode, allowing users to launch bbrew with
a curated list of packages using the -f flag. When a Brewfile is provided,
the application displays only those packages, enabling themed collections
like IDE choosers or developer tool sets.

The implementation includes a Brewfile parser for brew and cask entries,
automatic filtering of the package catalog, and a refactored API with the
IsBrewfileMode() method for cleaner code. Critical bugs were fixed including
a synchronization issue between the displayed table and the filtered packages
array that caused incorrect package selection.

This feature is designed for Project Bluefin integration, providing curated
package experiences where users can browse predefined collections. Includes
example Brewfiles and comprehensive documentation.

* feat: add Install All functionality for Brewfile mode

Add ctrl+a keybinding to install all packages from a Brewfile at once,
available exclusively in Brewfile mode.

* feat: add Remove All for Brewfile mode

Add ctrl+r keybinding to batch remove all installed packages from
Brewfile with real-time progress counter. Validates packages are
installed before proceeding and skips non-installed packages.
Available only in Brewfile mode
2025-11-23 18:54:56 +01:00
Vito Castellano
806f9f735f
changed import module name 2025-02-12 00:39:12 +01:00
Vito Castellano
190dce6b48
update module name 2025-02-12 00:33:13 +01:00
Vito Castellano
c1dbd3db07
update module name 2025-02-12 00:29:07 +01:00
Vito Castellano
4c1449a3a7
setup golangci linter 2025-02-12 00:00:53 +01:00
Vito Castellano
387f699eea
cs refactor 2025-02-10 17:46:27 +01:00
Vito Castellano
9d9d8bc37b
moved main into cmd 2025-01-26 00:50:50 +01:00