diff --git a/Library/Homebrew/cleaner.rb b/Library/Homebrew/cleaner.rb index d96caeb09f..6181d3da45 100644 --- a/Library/Homebrew/cleaner.rb +++ b/Library/Homebrew/cleaner.rb @@ -66,6 +66,10 @@ class Cleaner end end + def executable_path?(path) + path.text_executable? + end + # Clean a top-level (bin, sbin, lib) directory, recursively, by fixing file # permissions and removing .la files, unless the files (or parent # directories) are protected by skip_clean. @@ -87,7 +91,7 @@ class Cleaner path.unlink else # Set permissions for executables and non-executables - perms = if path.mach_o_executable? || path.text_executable? + perms = if executable_path?(path) 0555 else 0444 @@ -103,3 +107,5 @@ class Cleaner end end end + +require "extend/os/cleaner" diff --git a/Library/Homebrew/extend/os/cleaner.rb b/Library/Homebrew/extend/os/cleaner.rb new file mode 100644 index 0000000000..868ff2d335 --- /dev/null +++ b/Library/Homebrew/extend/os/cleaner.rb @@ -0,0 +1,5 @@ +require "cleaner" + +if OS.mac? + require "extend/os/mac/cleaner" +end diff --git a/Library/Homebrew/extend/os/mac/cleaner.rb b/Library/Homebrew/extend/os/mac/cleaner.rb new file mode 100644 index 0000000000..74f627b48e --- /dev/null +++ b/Library/Homebrew/extend/os/mac/cleaner.rb @@ -0,0 +1,7 @@ +class Cleaner + private + + def executable_path?(path) + path.mach_o_executable? || path.text_executable? + end +end