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(**kwargs)
- Note:
- This operation also inherits all global arguments. 
brew.casks¶
Add/remove/update brew casks.
brew.casks(casks: str | list[str] | None=None, present=True, latest=False, upgrade=False, **kwargs)
- 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,
)
- Note:
- This operation also inherits all global arguments. 
brew.packages¶
Add/remove/update brew packages.
brew.packages(
    packages: str | list[str] | None=None, present=True, latest=False, update=False,
    upgrade=False, **kwargs,
)
- 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,
)
- Note:
- This operation also inherits all global arguments. 
brew.tap¶
Add/remove brew taps.
brew.tap(src: str | None=None, present=True, url: str | None=None, **kwargs)
- 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,
    )
- Note:
- This operation also inherits all global arguments. 
brew.update¶
Stateless operation
This operation will always execute commands and is not idempotent.
Updates brew repositories.
brew.update(**kwargs)
- Note:
- This operation also inherits all global arguments. 
brew.upgrade¶
Stateless operation
This operation will always execute commands and is not idempotent.
Upgrades all brew packages.
brew.upgrade(**kwargs)
- Note:
- This operation also inherits all global arguments. 
 pyinfra 3.x
            pyinfra 3.x