This project is a fork of the Homebrew.git project. If you have that one already cloned locally, you can use
git clone --reference /path/to/your/Homebrew.git/incarnation mirror_URL
to save bandwidth during cloning.
 
descriptionBundler for non-Ruby dependencies from Homebrew, Homebrew Cask and the Mac App Store.
homepage URLhttps://brew.sh/
repository URLhttps://github.com/Homebrew/homebrew-bundle.git
ownerroot@yurikoles.com
last changeFri, 23 Aug 2024 16:20:00 +0000 (23 17:20 +0100)
last refreshSat, 24 Aug 2024 07:58:03 +0000 (24 09:58 +0200)
content tags
add:
README.md

Homebrew Bundle

Bundler for non-Ruby dependencies from Homebrew, Homebrew Cask, Mac App Store, Whalebrew and Visual Studio Code.

Requirements

Homebrew (on macOS or Linux) for installing dependencies.

Homebrew Cask is optional and used for installing Mac applications.

mas-cli is optional and used for installing Mac App Store applications.

Whalebrew is optional and used for installing Whalebrew images.

Visual Studio Code is optional and used for installing Visual Studio Code extensions.

Installation

brew bundle is automatically installed when first run.

Usage

See the brew bundle section of the brew generate-man-completions output or brew bundle --help.

An example Brewfile:

# 'brew tap'
tap "homebrew/cask"
# 'brew tap' with custom Git URL
tap "user/tap-repo", "https://user@bitbucket.org/user/homebrew-tap-repo.git"
# 'brew tap' with arguments
tap "user/tap-repo", "https://user@bitbucket.org/user/homebrew-tap-repo.git", force_auto_update: true

# set arguments for all 'brew install --cask' commands
cask_args appdir: "~/Applications", require_sha: true

# 'brew install'
brew "imagemagick"
# 'brew install --with-rmtp', 'brew services restart' on version changes
brew "denji/nginx/nginx-full", args: ["with-rmtp"], restart_service: :changed
# 'brew install', always 'brew services restart', 'brew link', 'brew unlink mysql' (if it is installed)
brew "mysql@5.6", restart_service: true, link: true, conflicts_with: ["mysql"]
# install only on specified OS
brew "gnupg" if OS.mac?
brew "glibc" if OS.linux?

# 'brew install --cask'
cask "google-chrome"
# 'brew install --cask --appdir=~/my-apps/Applications'
cask "firefox", args: { appdir: "~/my-apps/Applications" }
# bypass Gatekeeper protections (NOT RECOMMENDED)
cask "firefox", args: { no_quarantine: true }
# always upgrade auto-updated or unversioned cask to latest version even if already installed
cask "opera", greedy: true
# 'brew install --cask' only if '/usr/libexec/java_home --failfast' fails
cask "java" unless system "/usr/libexec/java_home", "--failfast"

# 'mas install'
mas "1Password", id: 443_987_910

# 'whalebrew install'
whalebrew "whalebrew/wget"

# 'vscode --install-extension'
vscode "GitHub.codespaces"

Versions and lockfiles

Homebrew is a rolling release package manager so it does not support installing arbitrary older versions of software. If your software needs specific pinned versions, consider whalebrew lines in your Brewfile to install Docker containers.

After a successful brew bundle run, it creates a Brewfile.lock.json to record the environment. If a future brew bundle run fails, you can check the differences between Brewfile.lock.json to debug. As it can contain local environment information that varies between systems, it's not worth committing to version control on multi-user repositories.

Disable generation of the Brewfile.lock.json file by setting the environment variable with export HOMEBREW_BUNDLE_NO_LOCK=1 or by using the command-line argument brew bundle --no-lock.

New Installers/Checkers/Dumpers

brew bundle currently supports Homebrew, Homebrew Cask, Mac App Store, Whalebrew and Visual Studio Code.

We are interested in contributions for other installers/checkers/dumpers but they must:

Note: based on these criteria, we would not accept e.g. Whalebrew (but have no plans to remove it.)

Tests

Tests can be run with bundle install && bundle exec rspec. Syntax linting can be run with brew style homebrew/bundle.

Copyright (c) Homebrew maintainers and Andrew Nesbitt. See LICENSE for details.

shortlog
16 hours ago Mike McQuaidMerge pull request #1435 from Homebrew/sync-shared... master
16 hours ago BrewTestBot.rubocop.yml: update to match main configuration
33 hours ago Patrick LinnaneMerge pull request #1434 from Homebrew/dependabot/bundl...
33 hours ago dependabot... build(deps-dev): bump activesupport from 7.2.0 to 7.2.1
35 hours ago Patrick LinnaneMerge pull request #1433 from Homebrew/dependabot/bundl...
35 hours ago dependabot... build(deps-dev): bump rexml from 3.3.5 to 3.3.6
3 days ago Jacob BednarzMerge pull request #1432 from Homebrew/dependabot/bundl...
3 days ago dependabot... build(deps-dev): bump rspec-expectations from 3.13...
3 days ago Mike McQuaidMerge pull request #1431 from Homebrew/sync-shared...
3 days ago BrewTestBot.rubocop.yml: update to match main configuration
4 days ago Patrick LinnaneMerge pull request #1430 from Homebrew/sync-shared...
4 days ago BrewTestBot.rubocop.yml: update to match main configuration
4 days ago Mike McQuaidMerge pull request #1429 from Homebrew/homebrew_bundle_...
4 days ago Mike McQuaidcmd/bundle: better handle HOMEBREW_VERSION.
5 days ago Patrick LinnaneMerge pull request #1428 from Homebrew/dependabot/bundl...
7 days ago dependabot... build(deps-dev): bump minitest from 5.25.0 to 5.25.1
...
heads
16 hours ago master
5 days ago wip-devcontainer
4 months ago mas_updates
21 months ago dependabot/bundler/rspec-mocks-3.11.2