aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Homebrew/cmd/cleanup-installed.rb
blob: 06b71a6e2dd67d393173fca0f344768eb591aba6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# DEPRECATED in favour of https://github.com/Homebrew/homebrew-brewdler
#
# 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
    opoo <<-EOS.undent
      brew cleanup-installed is deprecated and will be removed soon!

      Please consider using the `brew brewdle dump` and `brew brewdle cleanup`
      commands from https://github.com/Homebrew/homebrew-brewdler
    EOS
    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", "--force", *uninstall_formulae
  end
end