Code Monkey home page Code Monkey logo

homebrew-rmtree's People

Contributors

adzenith avatar beeftornado avatar caseyduquettesc avatar henry40408 avatar jawshooah avatar jsfaint avatar laggardkernel avatar max-ae avatar sapfeer0k avatar thatsjustcheesy avatar vladimyr avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

homebrew-rmtree's Issues

Error: undefined method `uses_args' for Homebrew:Module

Hi,

I'm trying to uninstall some packages but got the following error:

brew rmtree prettier
Error: undefined method `uses_args' for Homebrew:Module
/opt/homebrew/Library/Taps/beeftornado/homebrew-rmtree/cmd/brew-rmtree.rb:191:in `block (2 levels) in uses'
/opt/homebrew/Library/Taps/beeftornado/homebrew-rmtree/cmd/brew-rmtree.rb:148:in `all?'
/opt/homebrew/Library/Taps/beeftornado/homebrew-rmtree/cmd/brew-rmtree.rb:148:in `block in uses'
/opt/homebrew/Library/Taps/beeftornado/homebrew-rmtree/cmd/brew-rmtree.rb:147:in `select'
/opt/homebrew/Library/Taps/beeftornado/homebrew-rmtree/cmd/brew-rmtree.rb:147:in `uses'
/opt/homebrew/Library/Taps/beeftornado/homebrew-rmtree/cmd/brew-rmtree.rb:448:in `rmtree'
/opt/homebrew/Library/Taps/beeftornado/homebrew-rmtree/cmd/brew-rmtree.rb:565:in `block in main'
/opt/homebrew/Library/Taps/beeftornado/homebrew-rmtree/cmd/brew-rmtree.rb:565:in `each'
/opt/homebrew/Library/Taps/beeftornado/homebrew-rmtree/cmd/brew-rmtree.rb:565:in `main'
/opt/homebrew/Library/Taps/beeftornado/homebrew-rmtree/cmd/brew-rmtree.rb:569:in `<top (required)>'
/opt/homebrew/Library/Homebrew/extend/kernel.rb:10:in `require'
/opt/homebrew/Library/Homebrew/extend/kernel.rb:10:in `require?'
/opt/homebrew/Library/Homebrew/brew.rb:94:in `<main>'
If reporting this issue please do so at (not Homebrew/brew or Homebrew/homebrew-core):
  https://github.com/beeftornado/homebrew-rmtree/issues/new

I think I got the latest rmtree package and the brew version is 4.2.17

Can you have a look?

Homebrew v.3 install as in README.md not working

Starting Homebrew v.3 this command is not working:

$ brew tap beeftornado/rmtree

For some reason the HTTPS connection is used instead of SSH. When entering the username and password the connection fails (?).

This can be solved by using the following command:

$ brew tap beeftornade/rmtree [email protected]:beeftornado/homebrew-rmtree.git

Error running brew rmtree

I'm getting this error when trying to $ brew rmtree mpg123:

$ brew rmtree mpg123
Warning: Calling <<-EOS.undent is deprecated!
Use <<~EOS instead.
/usr/local/bin/brew-rmtree.rb:45:in `<module:BrewRmtree>'

Error: undefined method `default_formula' for #<MacOSRequirement: "macos" [:mountain_lion]>
/usr/local/bin/brew-rmtree.rb:146:in `block (3 levels) in uses'
/usr/local/bin/brew-rmtree.rb:146:in `any?'
/usr/local/bin/brew-rmtree.rb:146:in `block (2 levels) in uses'
/usr/local/bin/brew-rmtree.rb:127:in `each'
/usr/local/bin/brew-rmtree.rb:127:in `all?'
/usr/local/bin/brew-rmtree.rb:127:in `block in uses'
/usr/local/bin/brew-rmtree.rb:126:in `select'
/usr/local/bin/brew-rmtree.rb:126:in `uses'
/usr/local/bin/brew-rmtree.rb:321:in `rmtree'
/usr/local/bin/brew-rmtree.rb:391:in `block in main'
/usr/local/bin/brew-rmtree.rb:391:in `each'
/usr/local/bin/brew-rmtree.rb:391:in `main'
/usr/local/bin/brew-rmtree.rb:395:in `<top (required)>'
/usr/local/Homebrew/Library/Homebrew/vendor/portable-ruby/2.3.3/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
/usr/local/Homebrew/Library/Homebrew/vendor/portable-ruby/2.3.3/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
/usr/local/Homebrew/Library/Homebrew/utils.rb:20:in `require?'
/usr/local/Homebrew/Library/Homebrew/brew.rb:106:in `<main>'

/Error: undefined method `name' for nil:NilClass

➜  ~ brew rmtree --dry-run mpv
This is a dry-run, nothing will be deleted
==> Examining installed formulae required by mpv...
 /Error: undefined method `name' for nil:NilClass
/usr/local/Homebrew/Library/Taps/beeftornado/homebrew-rmtree/cmd/brew-rmtree.rb:175:in `as_formula'
/usr/local/Homebrew/Library/Taps/beeftornado/homebrew-rmtree/cmd/brew-rmtree.rb:159:in `block in dependency_tree'
/usr/local/Homebrew/Library/Taps/beeftornado/homebrew-rmtree/cmd/brew-rmtree.rb:159:in `map'
/usr/local/Homebrew/Library/Taps/beeftornado/homebrew-rmtree/cmd/brew-rmtree.rb:159:in `dependency_tree'
/usr/local/Homebrew/Library/Taps/beeftornado/homebrew-rmtree/cmd/brew-rmtree.rb:166:in `dependency_tree_as_keg_names'
/usr/local/Homebrew/Library/Taps/beeftornado/homebrew-rmtree/cmd/brew-rmtree.rb:287:in `block in build_tree'
/usr/local/Homebrew/Library/Taps/beeftornado/homebrew-rmtree/cmd/brew-rmtree.rb:100:in `show_wait_spinner'
/usr/local/Homebrew/Library/Taps/beeftornado/homebrew-rmtree/cmd/brew-rmtree.rb:281:in `build_tree'
/usr/local/Homebrew/Library/Taps/beeftornado/homebrew-rmtree/cmd/brew-rmtree.rb:342:in `rmtree'
/usr/local/Homebrew/Library/Taps/beeftornado/homebrew-rmtree/cmd/brew-rmtree.rb:396:in `block in main'
/usr/local/Homebrew/Library/Taps/beeftornado/homebrew-rmtree/cmd/brew-rmtree.rb:396:in `each'
/usr/local/Homebrew/Library/Taps/beeftornado/homebrew-rmtree/cmd/brew-rmtree.rb:396:in `main'
/usr/local/Homebrew/Library/Taps/beeftornado/homebrew-rmtree/cmd/brew-rmtree.rb:400:in `<top (required)>'
/System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
/System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
/usr/local/Homebrew/Library/Homebrew/utils.rb:20:in `require?'
/usr/local/Homebrew/Library/Homebrew/brew.rb:105:in `<main>'
➜  ~

Maybe a problem with my homebrew installation. Could you help me? Never ran into an error like this before.

`--dry-run` broken (regression) ?

Darwin smba13.local 20.6.0 Darwin Kernel Version 20.6.0: Mon Aug 30 06:12:20 PDT 2021; root:xnu-7195.141.6~3/RELEASE_ARM64_T8101 arm64

Screenshot of iTerm2 (05-10-2021, 15-58-27)

rmtree does not halt if bad option provided

If I have a program called program installed by brew and want to uninstall it and its dependencies, but provide a nonexistent option, say -x, so the command looks like $ brew rmtree -x program what happens is the help message gets printed preceded by the warning Unknown option: -x but then rmtree still proceeds as normal producing an output like the following:

Unknown option: "-x"
DESCRIPTION
  `rmtree` allows you to remove a formula entirely, including all of its dependencies,
  unless of course, they are used by another formula.

  Warning:

    Not all formulae declare their dependencies and therefore this command may end up
    removing something you still need. It should be used with caution.

USAGE
  brew rmtree [--force] [--dry-run] [--quiet] formula1 [formula2] [formula3]... [--ignore formulaX]

  Examples:

    brew rmtree gcc44 gcc48    # Removes 'gcc44' and 'gcc48' and their dependencies
    brew rmtree --force python # Force the removal of a package even if other formulae depend on it
    brew rmtree meld --ignore python  # Remove meld, but don't remove its dependency of python

OPTIONS
  --force   Overrides the dependency check for just the top-level formula you
            are trying to remove. If you try to remove 'ruby' for example,
            you most likely will not be able to do this because other fomulae
            specify this as a dependency. This option will let you remove
            'ruby'. This will NOT bypass dependency checks for the formula's
            children. If 'ruby' depends on 'git', then 'git' will still not
            be removed.
  --ignore  Ignore some dependencies from removal. This option must appear after
            the formulae to remove.
  --dry-run Does a dry-run. Goes through the whole process without actually
            removing anything. This gives you a chance to observe what packages
            would be removed and a chance to ignore them when you do it for real.
  --quiet   No output

==> Examining installed formulae required by program...
 /

Can safely be removed
----------------------


Proceed?[y/N]: n

Error: User quit

Unable to remove packages

It seems there are some errors in the scripts, when I remove packages using command brew rmtree [package], it shows an error. Brew and rmtree are up to date.

Error: CLI arg for `include_build?` is not declared for this command
/usr/local/Homebrew/Library/Homebrew/cli/args.rb:147:in `method_missing'
/usr/local/Homebrew/Library/Homebrew/dependencies_helpers.rb:14:in `args_includes_ignores'
/usr/local/Homebrew/Library/Taps/homebrew/homebrew-rmtree/cmd/brew-rmtree.rb:176:in `block (2 levels) in uses'
/usr/local/Homebrew/Library/Taps/homebrew/homebrew-rmtree/cmd/brew-rmtree.rb:133:in `all?'
/usr/local/Homebrew/Library/Taps/homebrew/homebrew-rmtree/cmd/brew-rmtree.rb:133:in `block in uses'
/usr/local/Homebrew/Library/Taps/homebrew/homebrew-rmtree/cmd/brew-rmtree.rb:132:in `select'
/usr/local/Homebrew/Library/Taps/homebrew/homebrew-rmtree/cmd/brew-rmtree.rb:132:in `uses'
/usr/local/Homebrew/Library/Taps/homebrew/homebrew-rmtree/cmd/brew-rmtree.rb:433:in `rmtree'
/usr/local/Homebrew/Library/Taps/homebrew/homebrew-rmtree/cmd/brew-rmtree.rb:550:in `block in main'
/usr/local/Homebrew/Library/Taps/homebrew/homebrew-rmtree/cmd/brew-rmtree.rb:550:in `each'
/usr/local/Homebrew/Library/Taps/homebrew/homebrew-rmtree/cmd/brew-rmtree.rb:550:in `main'
/usr/local/Homebrew/Library/Taps/homebrew/homebrew-rmtree/cmd/brew-rmtree.rb:554:in `<top (required)>'
/usr/local/Homebrew/Library/Homebrew/utils.rb:91:in `require'
/usr/local/Homebrew/Library/Homebrew/utils.rb:91:in `require?'
/usr/local/Homebrew/Library/Homebrew/brew.rb:124:in `<main>'

undefined method `uses_args' for Homebrew:Module

Hey, just tried running rmtree and got the following error.

Error: undefined method `uses_args' for Homebrew:Module
/usr/local/Homebrew/Library/Taps/beeftornado/homebrew-rmtree/cmd/brew-rmtree.rb:191:in `block (2 levels) in uses'
/usr/local/Homebrew/Library/Taps/beeftornado/homebrew-rmtree/cmd/brew-rmtree.rb:148:in `all?'
/usr/local/Homebrew/Library/Taps/beeftornado/homebrew-rmtree/cmd/brew-rmtree.rb:148:in `block in uses'
/usr/local/Homebrew/Library/Taps/beeftornado/homebrew-rmtree/cmd/brew-rmtree.rb:147:in `select'
/usr/local/Homebrew/Library/Taps/beeftornado/homebrew-rmtree/cmd/brew-rmtree.rb:147:in `uses'
/usr/local/Homebrew/Library/Taps/beeftornado/homebrew-rmtree/cmd/brew-rmtree.rb:448:in `rmtree'
/usr/local/Homebrew/Library/Taps/beeftornado/homebrew-rmtree/cmd/brew-rmtree.rb:565:in `block in main'
/usr/local/Homebrew/Library/Taps/beeftornado/homebrew-rmtree/cmd/brew-rmtree.rb:565:in `each'
/usr/local/Homebrew/Library/Taps/beeftornado/homebrew-rmtree/cmd/brew-rmtree.rb:565:in `main'
/usr/local/Homebrew/Library/Taps/beeftornado/homebrew-rmtree/cmd/brew-rmtree.rb:569:in `<top (required)>'
/usr/local/Homebrew/Library/Homebrew/extend/kernel.rb:10:in `require'
/usr/local/Homebrew/Library/Homebrew/extend/kernel.rb:10:in `require?'
/usr/local/Homebrew/Library/Homebrew/brew.rb:94:in `<main>'
If reporting this issue please do so at (not Homebrew/brew or Homebrew/homebrew-core):
  https://github.com/beeftornado/homebrew-rmtree/issues/new

output of brew config is

HOMEBREW_VERSION: 4.2.18
ORIGIN: https://github.com/Homebrew/brew
HEAD: 9edabf02ce29e54d0b717baa757cff38ad0c0e25
Last commit: 7 days ago
Core tap JSON: 21 Apr 20:22 UTC
Core cask tap JSON: 21 Apr 20:22 UTC
HOMEBREW_PREFIX: /usr/local
HOMEBREW_BAT_THEME: Monokai Extended
HOMEBREW_CASK_OPTS: []
HOMEBREW_DISPLAY: /private/tmp/com.apple.launchd.tNC5riRiCh/org.xquartz:0
HOMEBREW_EDITOR: nvim not found
HOMEBREW_EVAL_ALL: set
HOMEBREW_MAKE_JOBS: 4
Homebrew Ruby: 3.1.4 => /usr/local/Homebrew/Library/Homebrew/vendor/portable-ruby/3.1.4/bin/ruby
CPU: quad-core 64-bit broadwell
Clang: 14.0.0 build 1400
Git: 2.44.0 => /usr/local/bin/git
Curl: 8.4.0 => /usr/bin/curl
macOS: 12.7.4-x86_64
CLT: 14.2.0.0.1.1668646533
Xcode: 14.2

Running rmtree with --debug doesn't give any more info really, it's the same error text exactly plus a giant list of all my installed formulas from APILoader.

I'm running MacOS Monterey 12.7.4.

Let me know if any other info would be helpful.

Consider upstreaming?

I find this formula really useful, and was wondering whether it would be possible to put it in into homebrew/core or something like that?

I don't know if this meets their eligibility requirements or if it's even possible, but it would be nice to not have to add this custom tap to be able to use the rmtree command.

Error: undefined method `args' for Homebrew:Module

Today, I run into the following error:

brew rmtree gnutls
Error: undefined method `args' for Homebrew:Module
/opt/homebrew/bin/brew-rmtree.rb:528:in `main'
/opt/homebrew/bin/brew-rmtree.rb:553:in `<top (required)>'
/opt/homebrew/Library/Homebrew/utils.rb:92:in `require'
/opt/homebrew/Library/Homebrew/utils.rb:92:in `require?'
/opt/homebrew/Library/Homebrew/brew.rb:112:in `<main>'

Some info:

brew --version
Homebrew 3.5.1
Homebrew/homebrew-core (git revision c6001df23ba; last commit 2022-06-10)
Homebrew/homebrew-cask (git revision 3ee16f9e6e; last commit 2022-06-10)

# rmtree is installed here:
pwd
/opt/homebrew/Library/Taps/beeftornado/homebrew-rmtree

# and the rmtree revision is:
git rev-parse HEAD
e755439c5cf529ba1dfb93bfd2d2440ed0adbe91

Problem with multiple homebrew installations

I followed this guide to install both ARM and x86 version of homebrew side-by-side, and tried to run command ibrew rmtree autojump, which actually stands for arch --x86_64 /usr/local/bin/brew rmtree autojump.

I intended to remove the x86 version of autojump (installed to /usr/local/bin/autojump), however the ARM version (installed to /opt/homebrew/bin/autojump) was removed.

❯ ibrew rmtree autojump

==> Cleaning up packages safe to remove

Uninstalling /opt/homebrew/Cellar/autojump/22.5.3_2... (20 files, 169.8KB)
Uninstalling /opt/homebrew/Cellar/[email protected]/3.9.1_1... (3,897 files, 64.7MB)
Uninstalling /opt/homebrew/Cellar/gdbm/1.18.1_1... (25 files, 876.2KB)
Uninstalling /opt/homebrew/Cellar/sqlite/3.34.0... (11 files, 4.2MB)
Uninstalling /opt/homebrew/Cellar/readline/8.1... (48 files, 1.7MB)
Uninstalling /opt/homebrew/Cellar/xz/5.2.5... (95 files, 1.4MB)

How can I specify which homebrew installation to use?

Error: undefined method `default_formula' ...

Greetings!

I have the next issue, when I trying to rmtree some packages, it gives me those errors, here below is a few examples:

brew rmtree mpv
Error: undefined method `default_formula' for #<X11Requirement: "x11" [:optional]>
/usr/local/Homebrew/Library/Taps/beeftornado/homebrew-rmtree/cmd/brew-rmtree.rb:145:in `block (3 levels) in uses'
/usr/local/Homebrew/Library/Taps/beeftornado/homebrew-rmtree/cmd/brew-rmtree.rb:145:in `any?'
/usr/local/Homebrew/Library/Taps/beeftornado/homebrew-rmtree/cmd/brew-rmtree.rb:145:in `block (2 levels) in uses'
/usr/local/Homebrew/Library/Taps/beeftornado/homebrew-rmtree/cmd/brew-rmtree.rb:126:in `each'
/usr/local/Homebrew/Library/Taps/beeftornado/homebrew-rmtree/cmd/brew-rmtree.rb:126:in `all?'
/usr/local/Homebrew/Library/Taps/beeftornado/homebrew-rmtree/cmd/brew-rmtree.rb:126:in `block in uses'
/usr/local/Homebrew/Library/Taps/beeftornado/homebrew-rmtree/cmd/brew-rmtree.rb:125:in `select'
/usr/local/Homebrew/Library/Taps/beeftornado/homebrew-rmtree/cmd/brew-rmtree.rb:125:in `uses'
/usr/local/Homebrew/Library/Taps/beeftornado/homebrew-rmtree/cmd/brew-rmtree.rb:332:in `rmtree'
/usr/local/Homebrew/Library/Taps/beeftornado/homebrew-rmtree/cmd/brew-rmtree.rb:401:in `block in main'
/usr/local/Homebrew/Library/Taps/beeftornado/homebrew-rmtree/cmd/brew-rmtree.rb:401:in `each'
/usr/local/Homebrew/Library/Taps/beeftornado/homebrew-rmtree/cmd/brew-rmtree.rb:401:in `main'
/usr/local/Homebrew/Library/Taps/beeftornado/homebrew-rmtree/cmd/brew-rmtree.rb:405:in `<top (required)>'
/System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
/System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
/usr/local/Homebrew/Library/Homebrew/utils.rb:20:in `require?'
/usr/local/Homebrew/Library/Homebrew/brew.rb:106:in `<main>'

Here is another example

brew rmtree subversion
Error: undefined method `default_formula' for #<JavaRequirement: "java" [:optional] version=nil>
/usr/local/Homebrew/Library/Taps/beeftornado/homebrew-rmtree/cmd/brew-rmtree.rb:145:in `block (3 levels) in uses'
/usr/local/Homebrew/Library/Taps/beeftornado/homebrew-rmtree/cmd/brew-rmtree.rb:145:in `any?'
/usr/local/Homebrew/Library/Taps/beeftornado/homebrew-rmtree/cmd/brew-rmtree.rb:145:in `block (2 levels) in uses'
/usr/local/Homebrew/Library/Taps/beeftornado/homebrew-rmtree/cmd/brew-rmtree.rb:126:in `each'
/usr/local/Homebrew/Library/Taps/beeftornado/homebrew-rmtree/cmd/brew-rmtree.rb:126:in `all?'
/usr/local/Homebrew/Library/Taps/beeftornado/homebrew-rmtree/cmd/brew-rmtree.rb:126:in `block in uses'
/usr/local/Homebrew/Library/Taps/beeftornado/homebrew-rmtree/cmd/brew-rmtree.rb:125:in `select'
/usr/local/Homebrew/Library/Taps/beeftornado/homebrew-rmtree/cmd/brew-rmtree.rb:125:in `uses'
/usr/local/Homebrew/Library/Taps/beeftornado/homebrew-rmtree/cmd/brew-rmtree.rb:332:in `rmtree'
/usr/local/Homebrew/Library/Taps/beeftornado/homebrew-rmtree/cmd/brew-rmtree.rb:401:in `block in main'
/usr/local/Homebrew/Library/Taps/beeftornado/homebrew-rmtree/cmd/brew-rmtree.rb:401:in `each'
/usr/local/Homebrew/Library/Taps/beeftornado/homebrew-rmtree/cmd/brew-rmtree.rb:401:in `main'
/usr/local/Homebrew/Library/Taps/beeftornado/homebrew-rmtree/cmd/brew-rmtree.rb:405:in `<top (required)>'
/System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
/System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
/usr/local/Homebrew/Library/Homebrew/utils.rb:20:in `require?'
/usr/local/Homebrew/Library/Homebrew/brew.rb:106:in `<main>'

Here is my brew config

brew config
HOMEBREW_VERSION: 1.5.2
ORIGIN: https://github.com/Homebrew/brew
HEAD: 60a30e966b7cece5bd4823dae3fb981ab85106ea
Last commit: 2 days ago
Core tap ORIGIN: https://github.com/Homebrew/homebrew-core
Core tap HEAD: d7895a19fb7781635e85a52db150da56077b47ca
Core tap last commit: 4 hours ago
HOMEBREW_PREFIX: /usr/local
HOMEBREW_NO_ANALYTICS_THIS_RUN: 1
CPU: quad-core 64-bit haswell
Homebrew Ruby: 2.3.3 => /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/bin/ruby
Clang: 9.0 build 900
Git: 2.14.3 => /Library/Developer/CommandLineTools/usr/bin/git
Curl: 7.54.0 => /usr/bin/curl
Perl: /usr/bin/perl
Python: /usr/bin/python
Ruby: /usr/bin/ruby => /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/bin/ruby
Java: N/A
macOS: 10.13.3-x86_64
Xcode: 9.2
CLT: 9.2.0.0.1.1510905681
X11: N/A

Is that happens because I did not have installed Java and X11?

Can't remove formula when it is outdated

Formula can't be removed when it's outdated and not dependency of another formula.

$ brew outdated
gitg (3.18.0 < 3.20.1)

$ brew leaves
gitg

$ brew rmtree gitg
Error: gitg is not currently installed

--ignore flag doesn't seem to work anymore

brew rmtree mpv --ignore ffmpeg

==> Examining installed formulae required by mpv...
 -  10 / 23

Can safely be removed
----------------------
cairo
fontconfig
freetype
fribidi
glib
gobject-introspection
graphite2
harfbuzz
libass
libffi
pixman

Proceed?[y/N]: Error: No such file or directory @ rb_sysopen - ffmpeg
$ brew rmtree mpv --ignore ffmpeg --ignore x264
Error: No available formula with the name "--ignore"

Or if this is expected behavior, then document it better because apparently my own documentation confuses me.

private method `named' called

$ brew rmtree [email protected]          
Error: private method `named' called for ["[email protected]"]:Array
/usr/local/Homebrew/Library/Taps/beeftornado/homebrew-rmtree/cmd/brew-rmtree.rb:507:in `main'
/usr/local/Homebrew/Library/Taps/beeftornado/homebrew-rmtree/cmd/brew-rmtree.rb:535:in `<top (required)>'
/usr/local/Homebrew/Library/Homebrew/vendor/portable-ruby/2.6.3/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
/usr/local/Homebrew/Library/Homebrew/vendor/portable-ruby/2.6.3/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
/usr/local/Homebrew/Library/Homebrew/utils.rb:82:in `require?'
/usr/local/Homebrew/Library/Homebrew/brew.rb:105:in `<main>'
$ brew --version
Homebrew 2.2.10
Homebrew/homebrew-core (git revision e03a7e; last commit 2020-03-10)
Homebrew/homebrew-cask (git revision 0f475; last commit 2020-03-11)

Blocks on optional and build dependencies

When I run brew rmtree formulaX, it seems to systematically halt if other formulae have formulaX as an optional or build dependency, which should not, IMHO, be the default behaviour.

e.g.

$ brew rmtree python@2
python@2 can't be removed because other formula depend on it:
enchant, node

while

 $ brew uses --installed python@2
 $ (nothing)

because python@2 is an optional dep for enchant and a build dep for node.

I am not sure if there is an easy way to tell rmtree to ignore optional and build dependencies but NOT required dependencies (thus, not --force).

--dry-run option broken?

I just wanted to check this out, so the --dry-run option seemed perfect. But when I run it, I get this:

brew rmtree --dry-run eza
This is a dry-run, nothing will be deleted
Usage: brew uses [options] formula [...]

Show formulae and casks that specify formula as a dependency; that is, show
dependents of formula. When given multiple formula arguments, show the
intersection of formulae that use formula. By default, uses shows all
formulae and casks that specify formula as a required or recommended
dependency for their stable builds.

Note: --missing and --skip-recommended have precedence over --include-*.

      --recursive                  Resolve more than one level of dependencies.
      --installed                  Only list formulae and casks that are
                                   currently installed.
      --missing                    Only list formulae and casks that are not
                                   currently installed.
      --eval-all                   Evaluate all available formulae and casks,
                                   whether installed or not, to show their
                                   dependents.
      --include-build              Include formulae that specify formula as a
                                   :build dependency.
      --include-test               Include formulae that specify formula as a
                                   :test dependency.
      --include-optional           Include formulae that specify formula as an
                                   :optional dependency.
      --skip-recommended           Skip all formulae that specify formula as a
                                   :recommended dependency.
      --formula, --formulae        Include only formulae.
      --cask, --casks              Include only casks.
  -d, --debug                      Display any debugging information.
  -q, --quiet                      Make some output more quiet.
  -v, --verbose                    Make some output more verbose.
  -h, --help                       Show this message.
Error: invalid option: --dry-run

which is weird because

brew rmtree --help

[...]

You can use --dry-run (alias -n) to see what would be removed without
  actually removing anything.

[...]

Tried brew update, brew upgrade, and brew doctor with no luck. The standard brew rmtree eza works just fine, (then I just hit N to not remove anything).

Doesn't work on linuxbrew

Looks for an hardcoded key for Home-brew

Error: No such keg: /home/linuxbrew/.linuxbrew/Homebrew/Cellar/rustup-init
Error: No such keg: /home/linuxbrew/.linuxbrew/Homebrew/Cellar/curl

Cannot uninstall php71

Console output (installed via brew tap beeftornado/rmtree):

➜  brew rmtree php71
php71 can't be removed because other formula depend on it:
homebrew/php/php71-apcu, homebrew/php/php71-intl, homebrew/php/php71-opcache, homebrew/php/php71-mcrypt, homebrew/php/phpunit, homebrew/php/php71-yaml, homebrew/php/php71-imagick

Automatically remove dependency chain/tree

I was uninstalling a package named notmuch. Here is what I got in the output:

$ brew rmtree notmuch 
==> Examining installed formulae required by notmuch...
 /

Can safely be removed
----------------------
cairo
fontconfig
glib
gmime
gobject-introspection
pixman
talloc
xapian
zlib

Proceed?[y/N]: y
==> Cleaning up packages safe to remove

Uninstalling /usr/local/Cellar/notmuch/0.25.2... (31 files, 665.9KB)

Error: Refusing to uninstall /usr/local/Cellar/glib/2.54.2
because it is required by gmime 3.0.3, cairo 1.14.10, gobject-introspection 1.54.1, which are currently installed.
You can override this and force removal with:
  brew uninstall --ignore-dependencies glib


Error: Refusing to uninstall /usr/local/Cellar/fontconfig/2.12.6
because it is required by gmime 3.0.3, cairo 1.14.10, gobject-introspection 1.54.1, which are currently installed.
You can override this and force removal with:
  brew uninstall --ignore-dependencies fontconfig


Error: Refusing to uninstall /usr/local/Cellar/pixman/0.34.0_1
because it is required by gmime 3.0.3, cairo 1.14.10, gobject-introspection 1.54.1, which are currently installed.
You can override this and force removal with:
  brew uninstall --ignore-dependencies pixman


Error: Refusing to uninstall /usr/local/Cellar/cairo/1.14.10
because it is required by gmime 3.0.3, gobject-introspection 1.54.1, which are currently installed.
You can override this and force removal with:
  brew uninstall --ignore-dependencies cairo


Error: Refusing to uninstall /usr/local/Cellar/gobject-introspection/1.54.1
because it is required by gmime 3.0.3, which is currently installed.
You can override this and force removal with:
  brew uninstall --ignore-dependencies gobject-introspection


Uninstalling /usr/local/Cellar/gmime/3.0.3... (172 files, 3.8MB)

Uninstalling /usr/local/Cellar/talloc/2.1.10... (8 files, 104.7KB)

Uninstalling /usr/local/Cellar/xapian/1.4.5... (531 files, 10.2MB)

Uninstalling /usr/local/Cellar/zlib/1.2.11... (12 files, 373.4KB)

I guess, being able to track down the packages which need to be uninstalled by tracing down which ones are going to be removed would be good?

PS: I do not know how this utility works.

Issue detecting dependencies of 'lua'

$ brew rmtree lua
==> Examining installed formulae required by lua...
 /

Can safely be removed
----------------------


Proceed?[y/N]: y
==> Cleaning up packages safe to remove
Warning: Skipping lua: most recent version 5.3.4_2 not installed

Error: Refusing to uninstall /usr/local/Cellar/lua/5.2.4_4
because it is required by mpv 0.27.0_1, which is currently installed.
You can override this and force removal with:
  brew uninstall --ignore-dependencies lua


brew rmtree does not consider multiple versions of dependency packages

Hello, I have just run into this:

$> brew rm hevea
Uninstalling /usr/local/Cellar/hevea/2.14...

$> brew rmtree hevea
Uninstalling /usr/local/Cellar/hevea/2.09...
Found lingering dependencies
objective-caml
Removing dependency objective-caml...
Uninstalling /usr/local/Cellar/objective-caml/4.01.0_1...
No dependencies left on system for objective-caml.

$> brew rmtree hevea
Error: No such keg: /usr/local/Cellar/hevea

Found lingering dependencies
objective-caml
Removing dependency objective-caml...
Uninstalling /usr/local/Cellar/objective-caml/4.01.0...
No dependencies left on system for objective-caml.

$> brew rmtree hevea
Error: No such keg: /usr/local/Cellar/hevea

No dependencies left on system for hevea.

It looks that if a package comes in different versions, only the latest is removed.

(p.s. thanks for creating this tool!)

Brew Doctor `warning on ruby file`

Thanks so much for this script; unfortunately tapping you is now making brew doctor unhappy:

Warning: Found Ruby file outside beeftornado/rmtree tap formula directory
(/usr/local/Homebrew/Library/Taps/beeftornado/homebrew-rmtree/Formula):
  /usr/local/Homebrew/Library/Taps/beeftornado/homebrew-rmtree/brew-rmtree.rb

I don't know if it is a filename collision:
find output:

./brew-rmtree.rb
./Formula
./Formula/brew-rmtree.rb
./LICENSE
./README.md

or just the fact that your script is ruby, which seems odd.

Possibly @MikeMcQuaid or @vitorgalvao who has:
https://github.com/vitorgalvao/homebrew-tiny-scripts/
with a ton of ruby scripts can tell us why this is erroring?

Error on `brew rmtree bokken'

I tried uninstalling bokken via brew rmtree bokken and wound up with the following stack trace:

==> Examining installed formulae required by bokken...
Error: undefined method `installed?' for #<PythonRequirement: "python" []> \
/usr/local/Homebrew/Library/Taps/beeftornado/homebrew-rmtree/cmd/brew-rmtree.rb:159:in `select'
/usr/local/Homebrew/Library/Taps/beeftornado/homebrew-rmtree/cmd/brew-rmtree.rb:159:in `dependency_tree'
/usr/local/Homebrew/Library/Taps/beeftornado/homebrew-rmtree/cmd/brew-rmtree.rb:165:in `dependency_tree_as_keg_names'
/usr/local/Homebrew/Library/Taps/beeftornado/homebrew-rmtree/cmd/brew-rmtree.rb:280:in `block in build_tree'
/usr/local/Homebrew/Library/Taps/beeftornado/homebrew-rmtree/cmd/brew-rmtree.rb:100:in `show_wait_spinner'
/usr/local/Homebrew/Library/Taps/beeftornado/homebrew-rmtree/cmd/brew-rmtree.rb:274:in `build_tree'
/usr/local/Homebrew/Library/Taps/beeftornado/homebrew-rmtree/cmd/brew-rmtree.rb:335:in `rmtree'
/usr/local/Homebrew/Library/Taps/beeftornado/homebrew-rmtree/cmd/brew-rmtree.rb:389:in `block in main'
/usr/local/Homebrew/Library/Taps/beeftornado/homebrew-rmtree/cmd/brew-rmtree.rb:389:in `each'
/usr/local/Homebrew/Library/Taps/beeftornado/homebrew-rmtree/cmd/brew-rmtree.rb:389:in `main'
/usr/local/Homebrew/Library/Taps/beeftornado/homebrew-rmtree/cmd/brew-rmtree.rb:393:in `<top (required)>'
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
/usr/local/Homebrew/Library/Homebrew/utils.rb:20:in `require?'
/usr/local/Homebrew/Library/Homebrew/brew.rb:101:in `<main>'

Just as a sanity check, to make sure that running rmtree on other packages works alright, I did brew install spark and brew rmtree spark (using spark simply because it is very small). Doing that worked fine:

==> Examining installed formulae required by spark...
 /

Can safely be removed
----------------------


Proceed?[y/N]: y
==> Cleaning up packages safe to remove

Uninstalling /usr/local/Cellar/spark/1.0.1... (6 files, 7.0KB)

I assume the above error is somehow specific to bokken because it uses Python internally, and that error mentions Python.

Possible issue with outdated formulae

Hello,
Thanks for this very useful tool! I usually think to prune my old formulae when they show up in brew outdated (i.e. when they need to be upgraded). I tried to rmtree an outdated version of highlight, which depends on lua (which I have an outdated version of as well), but rmtree failed to detect/remove lua:

Tommy:~
$ brew outdated
[snip]
highlight (3.39) < 3.42
[snip]
lua (5.2.4_4) < 5.3.4_2
[snip]
Tommy:~
$ brew rmtree highlight
==> Examining installed formulae required by highlight...
 /

Can safely be removed
----------------------
highlight

Proceed?[y/N]: y
==> Cleaning up packages safe to remove
Warning: Skipping highlight: most recent version 3.42 not installed

Uninstalling /usr/local/Cellar/highlight/3.39... (381 files, 2.5MB)
Tommy:~

at this point, highlight was successfully uninstalled (thought it did give a warning saying it was "skipping" highlight since it wasn't the newest version). but lua was not uninstalled, which it should have been, since only highlight depended on it - proven by brew uninstall lua not complaining:

$ brew uninstall lua
Uninstalling /usr/local/Cellar/lua/5.2.4_4... (144 files, 705.1KB)
Tommy:~

I tried rmtree with a fresh install of highlight/lua, and it worked fine.

$ brew install highlight
==> Installing dependencies for highlight: lua
==> Installing highlight dependency: lua
==> Downloading https://homebrew.bintray.com/bottles/lua-5.3.4_2.high_sierra.bottle.tar.gz
######################################################################## 100.0%
==> Pouring lua-5.3.4_2.high_sierra.bottle.tar.gz
==> Caveats
Please be aware due to the way Luarocks is designed any binaries installed
via Luarocks-5.3 AND 5.1 will overwrite each other in /usr/local/bin.

This is, for now, unavoidable. If this is troublesome for you, you can build
rocks with the `--tree=` command to a special, non-conflicting location and
then add that to your `$PATH`.
==> Summary
🍺  /usr/local/Cellar/lua/5.3.4_2: 147 files, 752.9KB
==> Installing highlight
==> Downloading https://homebrew.bintray.com/bottles/highlight-3.42.high_sierra.bottle.tar.gz
######################################################################## 100.0%
==> Pouring highlight-3.42.high_sierra.bottle.tar.gz
🍺  /usr/local/Cellar/highlight/3.42: 396 files, 2.7MB
2018-03-12 23:52:46 Tommy:~
$ brew rmtree highlight
==> Examining installed formulae required by highlight...
 /

Can safely be removed
----------------------
highlight
lua

Proceed?[y/N]: y
==> Cleaning up packages safe to remove

Uninstalling /usr/local/Cellar/highlight/3.42... (396 files, 2.7MB)

Uninstalling /usr/local/Cellar/lua/5.3.4_2... (147 files, 752.9KB)

Error: undefined method `args_includes_ignores' for Homebrew:Module

brew rmtree ffmpeg
Error: undefined method `args_includes_ignores' for Homebrew:Module
/usr/local/Homebrew/Library/Taps/beeftornado/homebrew-rmtree/cmd/brew-rmtree.rb:176:in `block (2 levels) in uses'
/usr/local/Homebrew/Library/Taps/beeftornado/homebrew-rmtree/cmd/brew-rmtree.rb:133:in `all?'
/usr/local/Homebrew/Library/Taps/beeftornado/homebrew-rmtree/cmd/brew-rmtree.rb:133:in `block in uses'
/usr/local/Homebrew/Library/Taps/beeftornado/homebrew-rmtree/cmd/brew-rmtree.rb:132:in `select'
/usr/local/Homebrew/Library/Taps/beeftornado/homebrew-rmtree/cmd/brew-rmtree.rb:132:in `uses'
/usr/local/Homebrew/Library/Taps/beeftornado/homebrew-rmtree/cmd/brew-rmtree.rb:433:in `rmtree'
/usr/local/Homebrew/Library/Taps/beeftornado/homebrew-rmtree/cmd/brew-rmtree.rb:550:in `block in main'
/usr/local/Homebrew/Library/Taps/beeftornado/homebrew-rmtree/cmd/brew-rmtree.rb:550:in `each'
/usr/local/Homebrew/Library/Taps/beeftornado/homebrew-rmtree/cmd/brew-rmtree.rb:550:in `main'
/usr/local/Homebrew/Library/Taps/beeftornado/homebrew-rmtree/cmd/brew-rmtree.rb:554:in `<top (required)>'
/usr/local/Homebrew/Library/Homebrew/vendor/portable-ruby/2.6.3_2/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
/usr/local/Homebrew/Library/Homebrew/vendor/portable-ruby/2.6.3_2/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
/usr/local/Homebrew/Library/Homebrew/utils.rb:81:in `require?'
/usr/local/Homebrew/Library/Homebrew/brew.rb:113:in `<main>'

Thank you

This package is a lifesaver. I cannot for the life of me figure out why this isn't included in brew already.

Thank you!

Transitive dependencies not uninstalled in correct order

I've had gnupg2 installed for quite some time and I wanted to remove it. So I called brew rmtree gnupg2.

This listed the following dependencies:

Can safely be removed
----------------------
dirmngr
gpg-agent
libassuan
libgcrypt
libgpg-error
libksba
libusb
libusb-compat
pinentry
pth

After accepting the uninstallation of all these packages, brew failed to uninstall several dependencies because they were needed for some dependencies in this list. For instance, it started with uninstalling libgpg-error, which was still required for dirmngr. Below I've attached the log of the first run of brew rmtree (I've used it to also uninstall the refused formulae after the first run).

Uninstalling /usr/local/Cellar/gnupg2/2.0.30_2... (91 files, 3.7M)

Error: Refusing to uninstall /usr/local/Cellar/libgpg-error/1.26
because it is required by dirmngr, which is currently installed.
You can override this and force removal with:
  brew uninstall --ignore-dependencies libgpg-error


Error: Refusing to uninstall /usr/local/Cellar/libgcrypt/1.7.5
because it is required by dirmngr, which is currently installed.
You can override this and force removal with:
  brew uninstall --ignore-dependencies libgcrypt


Error: Refusing to uninstall /usr/local/Cellar/libksba/1.3.5
because it is required by dirmngr, which is currently installed.
You can override this and force removal with:
  brew uninstall --ignore-dependencies libksba


Error: Refusing to uninstall /usr/local/Cellar/libassuan/2.4.3_1
because it is required by dirmngr, which is currently installed.
You can override this and force removal with:
  brew uninstall --ignore-dependencies libassuan


Error: Refusing to uninstall /usr/local/Cellar/pinentry/0.9.7
because it is required by gpg-agent, which is currently installed.
You can override this and force removal with:
  brew uninstall --ignore-dependencies pinentry


Error: Refusing to uninstall /usr/local/Cellar/pth/2.0.7
because it is required by dirmngr, which is currently installed.
You can override this and force removal with:
  brew uninstall --ignore-dependencies pth


Uninstalling /usr/local/Cellar/gpg-agent/2.0.30_1... (11 files, 695.6K)

Uninstalling /usr/local/Cellar/dirmngr/1.1.1_2... (66 files, 527.6K)

Error: Refusing to uninstall /usr/local/Cellar/libusb/1.0.20
because it is required by libusb-compat, which is currently installed.
You can override this and force removal with:
  brew uninstall --ignore-dependencies libusb


Uninstalling /usr/local/Cellar/libusb-compat/0.1.5... (13 files, 93.3K)

Some dependencies not removed that are safe to remove due to dependency-dependency relationship

Ironically I was needing to remove mpv, the exact example you use in the README. I had a clean install of mpv which currently needs ~33 dependencies, with nothing else installed from homebrew (literally just installed it and then ran brew install mpv). I then wanted to uninstall it right away and found this utility.

It was only able to uninstall about 23 or so of them out of the 33, but I forget the exact count. I'm pretty sure the reason is that the some of them were dependencies of other dependencies, meaning they are actually all safe to remove in this case but the relationship is a little complex.

`brew doctor` is complaining

Not seeing any consequence to this yet but wondering if I should be concerned that brew doctor complains...

Found command `brew-rmtree` in following places:
  /usr/local/bin/brew-rmtree.rb
  /usr/local/Homebrew/Library/Taps/beeftornado/homebrew-rmtree/cmd/brew-rmtree.rb

Implement proper dry-run option

# TODO: dry-run completely broken. Much more complicated than what I anticipated.
  # => Since none of the formulae get removed, it causes subsequent commands to 
  # => return inaccurate output. For dry-runs, a dependency graph has to be generated
  # => before starting the removal code so it can know ahead of time which users
  # => of a keg are going to be removed later and shouldn't be counted.
  # => This problem also exists for non-dry-runs, so it will need to be addressed soon.
  # => If there is a circular dependency, then they won't get removed even if it is safe to,
  # => because it will always looks like something is using that keg. Interesting issue.
  # => But these are the types of problems that come up with simple scripts for complicated
  # => problems.

  # --dry-run Does a dry-run. Goes through the whole process without actually
  #             removing anything. This gives you a chance to observe what packages
  #             would be removed and a chance to ignore them when you do it for real.

Not removing all dependencies.

The README warns that rmtree might remove too much, but in my case it seems to be removing too little:

$ brew list
brew-cask     brew-rmtree   youtube-dl
$ brew install mpv-player/mpv/mpv
$ brew rmtree mpv-player/mpv/mpv
$ brew list
brew-cask     glib          little-cms2
brew-rmtree   jpeg          lua
cairo         libffi        mpg123
fontconfig    libpng        pixman
freetype      libtiff       pkg-config
gettext       libvo-aacenc  youtube-dl

Can anything be done about this?

brew autoremove

does same thing. its built into brew

brew autoremove
==> Autoremoving 1 unneeded formula:
openjdk@17
Uninstalling /usr/local/Cellar/openjdk@17/17.0.8... (634 files, 305.2MB)

Feature Request Option to blacklist removal when confirmation is requested

When the program reports what formula it will remove, and it asks for confirmation to remove [y/n], can we instead have another option to list off the formula we want to blacklist from removal?

This is really a quality of life enhancement so you don't have to re-run the command with additional flags

Error: undefined method `default_formula' for #<MacOSRequirement: "macos" [:mountain_lion]>

Got this error (for several packages):

brew rmtree gphoto2
Warning: Calling 'depends_on :python' is deprecated!
Use 'depends_on "python"' instead.
/usr/local/Homebrew/Library/Taps/beeftornado/homebrew-rmtree/cmd/brew-rmtree.rb:125:in `uses'
Please report this to the beeftornado/rmtree tap!

Error: undefined method `default_formula' for #<MacOSRequirement: "macos" [:mountain_lion]>
/usr/local/Homebrew/Library/Taps/beeftornado/homebrew-rmtree/cmd/brew-rmtree.rb:145:in `block (3 levels) in uses'
/usr/local/Homebrew/Library/Taps/beeftornado/homebrew-rmtree/cmd/brew-rmtree.rb:145:in `any?'
/usr/local/Homebrew/Library/Taps/beeftornado/homebrew-rmtree/cmd/brew-rmtree.rb:145:in `block (2 levels) in uses'
/usr/local/Homebrew/Library/Taps/beeftornado/homebrew-rmtree/cmd/brew-rmtree.rb:126:in `each'
/usr/local/Homebrew/Library/Taps/beeftornado/homebrew-rmtree/cmd/brew-rmtree.rb:126:in `all?'
/usr/local/Homebrew/Library/Taps/beeftornado/homebrew-rmtree/cmd/brew-rmtree.rb:126:in `block in uses'
/usr/local/Homebrew/Library/Taps/beeftornado/homebrew-rmtree/cmd/brew-rmtree.rb:125:in `select'
/usr/local/Homebrew/Library/Taps/beeftornado/homebrew-rmtree/cmd/brew-rmtree.rb:125:in `uses'
/usr/local/Homebrew/Library/Taps/beeftornado/homebrew-rmtree/cmd/brew-rmtree.rb:332:in `rmtree'
/usr/local/Homebrew/Library/Taps/beeftornado/homebrew-rmtree/cmd/brew-rmtree.rb:401:in `block in main'
/usr/local/Homebrew/Library/Taps/beeftornado/homebrew-rmtree/cmd/brew-rmtree.rb:401:in `each'
/usr/local/Homebrew/Library/Taps/beeftornado/homebrew-rmtree/cmd/brew-rmtree.rb:401:in `main'
/usr/local/Homebrew/Library/Taps/beeftornado/homebrew-rmtree/cmd/brew-rmtree.rb:405:in `<top (required)>'
/usr/local/Homebrew/Library/Homebrew/vendor/portable-ruby/2.3.3/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
/usr/local/Homebrew/Library/Homebrew/vendor/portable-ruby/2.3.3/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
/usr/local/Homebrew/Library/Homebrew/utils.rb:20:in `require?'
/usr/local/Homebrew/Library/Homebrew/brew.rb:106:in `<main>'

Show user list of deps to be removed

Show user list of all deps that will be removed definitively. This depends on #7. Right now the discovery is happening as it removes. It would help extensibility if the list was known ahead of time.

I think the output can be condensed as well after this. It is a little verbose right now because it has to be.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.