#!/bin/sh # brew-cleanup-installed: uninstall all non-whitelisted Homebrew formulae. # # Useful for maintainers/testers who regularly install lots of formulae # they don't actually use. # # Populate ~/.brew-cleanup-installed with the formulae you want to keep # installed. All others will be uninstalled when brew-cleanup-installed is run. # Exit on any command failures set -e BREW_CLEAN_WHITELIST=~/.brew-cleanup-installed # Do nothing and exit if the file doesn't exist. [ -s $BREW_CLEAN_WHITELIST ] BREW_LIST=$TMPDIR/brew-installed-list # comm needs both lists to be sorted so ensure the dotfile is sorted first. sort --unique ~/.brew-cleanup-installed --output ~/.brew-cleanup-installed brew list > $BREW_LIST comm -13 $BREW_CLEAN_WHITELIST $BREW_LIST | xargs brew uninstall rm $BREW_LIST