Match whitelisted files using fnmatch

This commit is contained in:
Jack Nagel 2014-09-24 14:00:39 -05:00
parent e5c42895a8
commit 71b0c773ec

View File

@ -103,9 +103,18 @@ def check_for_macgpg2
end end
end end
def __check_stray_files(pattern, white_list, message) def __check_stray_files(dir, pattern, white_list, message)
files = Dir[pattern].select { |f| File.file? f and not File.symlink? f } files = Dir.chdir(dir) {
bad = files.reject {|d| white_list.key? File.basename(d) } Dir[pattern].select { |f| File.file?(f) && !File.symlink?(f) }
}
keys = white_list.keys
bad = files.reject { |file|
keys.any? { |pat| File.fnmatch?(pat, file) }
}
bad.map! { |file| File.join(dir, file) }
inject_file_list(bad, message) unless bad.empty? inject_file_list(bad, message) unless bad.empty?
end end
@ -119,7 +128,7 @@ def check_for_stray_dylibs
"libosxfuse_i64.2.dylib" => "OSXFuse", "libosxfuse_i64.2.dylib" => "OSXFuse",
} }
__check_stray_files '/usr/local/lib/*.dylib', white_list, <<-EOS.undent __check_stray_files "/usr/local/lib", "*.dylib", white_list, <<-EOS.undent
Unbrewed dylibs were found in /usr/local/lib. Unbrewed dylibs were found in /usr/local/lib.
If you didn't put them there on purpose they could cause problems when If you didn't put them there on purpose they could cause problems when
building Homebrew formulae, and may need to be deleted. building Homebrew formulae, and may need to be deleted.
@ -136,7 +145,7 @@ def check_for_stray_static_libs
"libsecurity_agent_server.a" => "OS X 10.8.2 Supplemental Update" "libsecurity_agent_server.a" => "OS X 10.8.2 Supplemental Update"
} }
__check_stray_files '/usr/local/lib/*.a', white_list, <<-EOS.undent __check_stray_files "/usr/local/lib", "*.a", white_list, <<-EOS.undent
Unbrewed static libraries were found in /usr/local/lib. Unbrewed static libraries were found in /usr/local/lib.
If you didn't put them there on purpose they could cause problems when If you didn't put them there on purpose they could cause problems when
building Homebrew formulae, and may need to be deleted. building Homebrew formulae, and may need to be deleted.
@ -152,7 +161,7 @@ def check_for_stray_pcs
"osxfuse.pc" => "OSXFuse", "osxfuse.pc" => "OSXFuse",
} }
__check_stray_files '/usr/local/lib/pkgconfig/*.pc', white_list, <<-EOS.undent __check_stray_files "/usr/local/lib/pkgconfig", "*.pc", white_list, <<-EOS.undent
Unbrewed .pc files were found in /usr/local/lib/pkgconfig. Unbrewed .pc files were found in /usr/local/lib/pkgconfig.
If you didn't put them there on purpose they could cause problems when If you didn't put them there on purpose they could cause problems when
building Homebrew formulae, and may need to be deleted. building Homebrew formulae, and may need to be deleted.
@ -169,7 +178,7 @@ def check_for_stray_las
"libosxfuse_i64.la" => "OSXFuse", "libosxfuse_i64.la" => "OSXFuse",
} }
__check_stray_files '/usr/local/lib/*.la', white_list, <<-EOS.undent __check_stray_files "/usr/local/lib", "*.la", white_list, <<-EOS.undent
Unbrewed .la files were found in /usr/local/lib. Unbrewed .la files were found in /usr/local/lib.
If you didn't put them there on purpose they could cause problems when If you didn't put them there on purpose they could cause problems when
building Homebrew formulae, and may need to be deleted. building Homebrew formulae, and may need to be deleted.
@ -181,7 +190,7 @@ end
def check_for_stray_headers def check_for_stray_headers
white_list = {} # TODO whitelist MacFuse/OSXFuse headers white_list = {} # TODO whitelist MacFuse/OSXFuse headers
__check_stray_files "/usr/local/include/**/*.h", white_list, <<-EOS.undent __check_stray_files "/usr/local/include", "**/*.h", white_list, <<-EOS.undent
Unbrewed header files were found in /usr/local/include. Unbrewed header files were found in /usr/local/include.
If you didn't put them there on purpose they could cause problems when If you didn't put them there on purpose they could cause problems when
building Homebrew formulae, and may need to be deleted. building Homebrew formulae, and may need to be deleted.