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 updatebefore installing packages - upgrade: run
brew upgradebefore 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()
pyinfra 2.x