aboutsummaryrefslogtreecommitdiffstats
path: root/Library
diff options
context:
space:
mode:
Diffstat (limited to 'Library')
-rw-r--r--Library/Homebrew/cmd/list.rb31
1 files changed, 23 insertions, 8 deletions
diff --git a/Library/Homebrew/cmd/list.rb b/Library/Homebrew/cmd/list.rb
index 9299260de..c624040ed 100644
--- a/Library/Homebrew/cmd/list.rb
+++ b/Library/Homebrew/cmd/list.rb
@@ -25,20 +25,35 @@ module Homebrew extend self
private
+ UNBREWED_EXCLUDE_FILES = %w[.DS_Store]
+ UNBREWED_EXCLUDE_PATHS = %w[
+ bin/brew
+ lib/gdk-pixbuf-2.0/*
+ lib/gio/*
+ lib/node_modules/*
+ lib/python[23].[0-9]/*
+ share/info/dir
+ share/man/man1/brew.1
+ share/man/whatis
+ ]
+
def list_unbrewed
- dirs = HOMEBREW_PREFIX.children.select{ |pn| pn.directory? }.map{ |pn| pn.basename.to_s }
+ dirs = HOMEBREW_PREFIX.subdirs.map { |dir| dir.basename.to_s }
dirs -= %w[Library Cellar .git]
- # Exclude the cache, if it has been located under the prefix
- cache_folder = (HOMEBREW_CACHE.relative_path_from(HOMEBREW_PREFIX)).to_s
- dirs -= [cache_folder]
+ # Exclude the repository and cache, if they are located under the prefix
+ dirs.delete HOMEBREW_CACHE.relative_path_from(HOMEBREW_PREFIX).to_s
+ dirs.delete HOMEBREW_REPOSITORY.relative_path_from(HOMEBREW_PREFIX).to_s
+ dirs.delete 'etc'
+ dirs.delete 'var'
- # Exclude the repository, if it has been located under the prefix
- cache_folder = (HOMEBREW_REPOSITORY.relative_path_from(HOMEBREW_PREFIX)).to_s
- dirs -= [cache_folder]
+ args = dirs + %w[-type f (]
+ args.concat UNBREWED_EXCLUDE_FILES.map { |f| %W[! -name #{f}] }.flatten
+ args.concat UNBREWED_EXCLUDE_PATHS.map { |d| %W[! -path #{d}] }.flatten
+ args.concat %w[)]
cd HOMEBREW_PREFIX
- exec 'find', *dirs + %w[-type f ( ! -iname .ds_store ! -iname brew ! -iname brew-man.1 ! -iname brew.1 )]
+ exec 'find', *args
end
def list_versions