brew-cleanup-installed: Rubify, make internal cmd.
This commit is contained in:
parent
3b8a6c0724
commit
86ded7833c
@ -1,22 +0,0 @@
|
|||||||
#!/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
|
|
||||||
20
Library/Homebrew/cmd/cleanup-installed.rb
Executable file
20
Library/Homebrew/cmd/cleanup-installed.rb
Executable file
@ -0,0 +1,20 @@
|
|||||||
|
# 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.
|
||||||
|
|
||||||
|
module Homebrew
|
||||||
|
def cleanup_installed
|
||||||
|
cleanup_file = Pathname.new "#{ENV["HOME"]}/.brew-cleanup-installed"
|
||||||
|
return unless cleanup_file.exist?
|
||||||
|
|
||||||
|
kept_formulae = cleanup_file.read.lines.map(&:strip)
|
||||||
|
current_formulae = `brew list`.lines.map(&:strip)
|
||||||
|
uninstall_formulae = current_formulae - kept_formulae
|
||||||
|
return if uninstall_formulae.empty?
|
||||||
|
safe_system "brew", "uninstall", *uninstall_formulae
|
||||||
|
end
|
||||||
|
end
|
||||||
Loading…
x
Reference in New Issue
Block a user