meta_package_manager.managers.homebrew

class meta_package_manager.managers.homebrew.Homebrew[source]

Bases: meta_package_manager.base.PackageManager

platforms = frozenset({'macos'})
requirement = '>= 1.7.4'
id = 'brew'
get_version()[source]

Fetch version from brew --version output.

Raw CLI output samples:

$ brew --version
Homebrew 1.8.6-124-g6cd4c31
Homebrew/homebrew-core (git revision 533d; last commit 2018-12-28)
Homebrew/homebrew-cask (git revision 5095b; last commit 2018-12-28)
sync
installed

Fetch installed packages from brew list output.

Note

This method is shared by brew and cask, only that the latter adds its cask subcommand to the CLI call.

Raw CLI output samples:

$ brew list --versions
ack 2.14
apg 2.2.3
audacity (!) 2.1.2
apple-gcc42 4.2.1-5666.3
atk 2.22.0
bash 4.4.5
bash-completion 1.3_1
boost 1.63.0
c-ares 1.12.0
graphviz 2.40.1 2.40.20161221.0239
quicklook-json latest
$ brew cask list --versions
aerial 1.2beta5
android-file-transfer latest
audacity (!) 2.1.2
bitbar 1.9.2
firefox 49.0.1
flux 37.7
gimp 2.8.18-x86_64
java 1.8.0_112-b16
tunnelblick 3.6.8_build_4625 3.6.9_build_4685
virtualbox 5.1.8-111374 5.1.10-112026
search(query)[source]

Fetch matching packages from brew search output.

Raw CLI output samples:

$ brew search sed
==> Formulae
gnu-sed ✔                    libxdg-basedir               minised

==> Casks
eclipse-dsl                       marsedit
focused                           physicseditor
google-adwords-editor             prefs-editor
licensed                          subclassed-mnemosyne
outdated

Fetch outdated packages from brew outdated output.

Raw CLI output samples:

$ brew outdated --json=v1
[
  {
    "name": "cassandra",
    "installed_versions": [
      "3.5"
    ],
    "current_version": "3.7"
  },
  {
    "name": "vim",
    "installed_versions": [
      "7.4.1967"
    ],
    "current_version": "7.4.1993"
  },
  {
    "name": "youtube-dl",
    "installed_versions": [
      "2016.07.06"
    ],
    "current_version": "2016.07.09.1"
  }
]
upgrade_cli(package_id=None)[source]

Return a bash-compatible full-CLI to upgrade a package.

upgrade_all_cli()[source]

Return a bash-compatible full-CLI to upgrade all packages.

class meta_package_manager.managers.homebrew.HomebrewCask[source]

Bases: meta_package_manager.managers.homebrew.Homebrew

Cask is now part of Homebrew’s core and extend it.

id = 'cask'
name = 'Homebrew Cask'
cli_name = 'brew'
outdated

Search for outdated packages among installed one.

Raw CLI output samples:

$ brew cask outdated
google-play-music-desktop-player (4.4.0) != 4.4.1
$ brew cask outdated --verbose
java (9.0.1,11) != 10,46:76eac37278c24557a3c4199677f19b62
prey (1.7.2) != 1.7.3
qlvideo (1.90) != 1.91
virtualbox (5.2.4-119785) != 5.2.8,121009
$ brew cask outdated --greedy --verbose
android-file-transfer (latest) != latest
atom (1.19.3) != 1.19.4
dropbox (latest) != latest
google-chrome (latest) != latest
google-drive (latest) != latest
google-play-music-desktop-player (4.4.0) != 4.4.1
karabiner-elements (0.90.92) != 0.91.13
osxfuse (3.5.6) != 3.6.3
qlimagesize (latest) != latest
qlrest (latest) != latest
quicklook-json (latest) != latest
steam (latest) != latest
upgrade_cli(package_id=None)[source]

Install a package.

Todo

Wait for https://github.com/caskroom/homebrew-cask/issues/22647 so we can force a cleanup in one go, as we do above with vanilla Homebrew.

upgrade_all_cli()[source]

Return a bash-compatible full-CLI to upgrade all packages.