Awesome
brew-cask-upgrade
brew-cask-upgrade
is a command-line tool for upgrading every outdated app
installed by Homebrew Cask.
Homebrew Cask extends Homebrew and brings its elegance, simplicity, and speed to the installation and management of GUI macOS applications and large binaries alike.
brew-cask-upgrade
is an external command to replace the native upgrade
by offering interactivity, an improved interface, and higher granularity of what to upgrade.
Installation
brew tap buo/cask-upgrade
Verification of installation
In order to simply verify that brew cu
is correctly installed, you can simply run brew tap
command and see if the repo is included:
> brew tap
buo/cask-upgrade
homebrew/bundle
homebrew/cask
homebrew/core
Uninstallation
brew untap buo/cask-upgrade
Usage
Upgrade outdated apps:
brew cu
Upgrade a specific app:
brew cu [CASK]
While running the brew cu
command without any other further options, the script automatically runs brew update
to get
latest versions of all the installed casks (this can be disabled, see options below).
It is also possible to use *
to install multiple casks at once, i.e. brew cu flash-*
to install all casks starting with flash-
prefix.
Apps with auto-update
If the app has the auto update functionality (i.e. they ask you themselves if you want to upgrade them), they are not
upgraded while running brew cu
and will display a PASS
result. If you want to upgrade them, pass the -a
or --all
option to include also those kind of apps.
Please note, that if you update the apps using their auto-update functionality, that change will not reflect in the
brew cu
script! Tracked version gets only updated, when the app is upgraded through brew cu --all
.
Options
Usage: brew cu [command=run] [CASK] [options]
Commands:
run Default command, doesn't have to be specified. Executes cask upgrades.
pin Pin the current app version, preventing it from being
upgraded when issuing the `brew cu` command. See also `unpin`.
unpin Unpin the current app version, allowing them to be
upgraded by `brew cu` command. See also `pin`.
pinned Print all pinned apps and its version. See also `pin`.
Options:
-a, --all Include apps that auto-update in the upgrade.
--cleanup Cleans up cached downloads and tracker symlinks after
updating.
-f --force Include apps that are marked as latest
(i.e. force-reinstall them).
--no-brew-update Prevent auto-update of Homebrew, taps, and formulae
before checking outdated apps.
-y, --yes Update all outdated apps; answer yes to updating packages.
-q, --quiet Do not show information about installed apps or current options.
-v, --verbose Make output more verbose.
--no-quarantine Pass --no-quarantine option to `brew cask install`.
-i, --interactive Running update in interactive mode
--include-mas (Experimental) Include applications from Mac App Store.
Display usage instructions:
brew help cu
Mac App Store applications (Experimental)
By adding --include-mas
parameter to the brew cu
command, we use mas cli tool to manage
upgrades for Mac App Store applications as well.
Note: This feature is highly experimental and we don't guarantee it's functionality. Use at your own risk.
Interactive mode
When using interactive mode (by adding --interactive
argument or confirming app installation with i
) will trigger per-cask confirmation.
For every cask it is then possible to use following options:
y
will install the current cask updateN
will skip the installation of current caskp
will pin the current version of the cask (see version pinning)
Version pinning
Pinned apps will not be updated by brew cu
until they are unpinned.
NB: version pinning in brew cu
will not prevent brew cask upgrade
from updating pinned apps.
Export / Import pinned apps
In order to export backup of your pinned casks into a file, simply pass --export
option to the pinned
command.
brew cu pinned --export my-backup-filename.txt
Note: Versions, in which were casks pinned, are not exported as it isn’t possible to install a specific version afterwards.
In order to load the configuration back, use --load
option.
brew cu pinned --load my-backup-filename.txt
Note: Loading the configuration will replace current values.