Brew Operations¶
Manage brew packages on mac/OSX. See https://brew.sh/
Facts used in these operations: brew.BrewCasks, brew.BrewPackages, brew.BrewTaps, brew.BrewVersion.
brew.cask_upgrade
¶
Stateless operation
This operation will always execute commands and is not idempotent.
Upgrades all brew casks.
brew.cask_upgrade()
brew.casks
¶
Add/remove/update brew casks.
brew.casks(casks=None, present=True, latest=False, upgrade=False)
- casks: list of casks to ensure
- present: whether the casks should be installed
- latest: whether to upgrade casks without a specified version
- upgrade: run brew cask upgrade before installing casks
- Versions:
- Cask versions can be pinned like brew:
<pkg>@<version>
.
Example:
brew.casks(
name='Upgrade and install the latest cask',
casks=["godot"],
upgrade=True,
latest=True,
)
brew.packages
¶
Add/remove/update brew packages.
brew.packages(packages=None, present=True, latest=False, update=False, upgrade=False)
- packages: list of packages to ensure
- present: whether the packages should be installed
- latest: whether to upgrade packages without a specified version
- update: run
brew update
before installing packages - upgrade: run
brew upgrade
before installing packages
- Versions:
- Package versions can be pinned like brew:
<pkg>@<version>
.
Examples:
# Update package list and install packages
brew.packages(
name='Install Vim and vimpager',
packages=["vimpager", "vim"],
update=True,
)
# Install the latest versions of packages (always check)
brew.packages(
name="Install latest Vim",
packages=["vim"],
latest=True,
)
brew.tap
¶
Add/remove brew taps.
brew.tap(src=None, present=True, url=None)
- src: the name of the tap
- present: whether this tap should be present or not
- url: the url of the tap. See https://docs.brew.sh/Taps
Examples:
brew.tap(
name="Add a brew tap",
src="includeos/includeos",
)
# Just url is equivalent to
# `brew tap kptdev/kpt https://github.com/kptdev/kpt`
brew.tap(
url="https://github.com/kptdev/kpt",
)
# src and url is equivalent to
# `brew tap example/project https://github.example.com/project`
brew.tap(
src="example/project",
url="https://github.example.com/project",
)
# Multiple taps
for tap in ["includeos/includeos", "ktr0731/evans"]:
brew.tap(
name={f"Add brew tap {tap}"},
src=tap,
)
brew.update
¶
Stateless operation
This operation will always execute commands and is not idempotent.
Updates brew repositories.
brew.update()
brew.upgrade
¶
Stateless operation
This operation will always execute commands and is not idempotent.
Upgrades all brew packages.
brew.upgrade()