585ecab616838a60e25d8f1ff12a1a449d21e397
Brewfile Tool
A tool to manage Homebrew packages from a CSV file.
Features
- Generate a Brewfile from a CSV list of packages.
- Install packages via the Brewfile, automatically resolving required dependencies.
- Check installation status and clean up packages not listed in the Brewfile.
Requirements
- macOS
- Homebrew
- Python 3
CSV Format
Packages are defined in apps.csv. Each row describes one package.
Columns
| Column | Required | Type | Description |
|---|---|---|---|
| name | Yes | string | Exact package name used by the installer. |
| type | Yes | enum | One of formula, cask, mas, vscode, or manual. |
| mas_id | No | string | Mac App Store app ID. Required only when type is mas. |
| install_on_setup | Yes | bool | yes to include the package in the Brewfile, otherwise no. |
| description | No | string | Short note about the package, written as a Brewfile comment. |
-
Rows with a
typeofmanualare ignored during generation. Thus, settinginstall_on_setupwithmanualtype doesn't have any effect. -
This tool only reads and uses 5 columns stated in this table. It is free to make more columns to add more metadata for packages.
Types
| Type | Brewfile Entry | Dependency |
|---|---|---|
| formula | brew "..." |
none |
| cask | cask "..." |
none |
| mas | mas "...", id: ... |
mas (install if missing) |
| vscode | vscode "..." |
code (install if missing) |
Usage
Run the tool and select an option from the menu.
python3 brewfile_tool.py
╰─➤ Select option
1) Create Brewfile
2) Install packages
3) Check packages
4) Cleanup packages
5) Exit
option:
| Option | Description |
|---|---|
| Create Brewfile | Generate a Brewfile from apps.csv. The old Brewfile is automatically backed up. |
| Install packages | Install dependencies if needed, then run brew bundle install. |
| Check packages | Verify that every package in the Brewfile is installed. |
| Cleanup packages | Remove installed packages that are not listed in the Brewfile. |
| Exit | Quit the tool. |
Languages
Python
100%
