aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Homebrew
diff options
context:
space:
mode:
authorAdam Vandenberg2014-02-23 11:07:37 -0800
committerAdam Vandenberg2014-02-23 15:53:25 -0800
commitf13e0490beda38caead6bcb4508d4082ce65ee44 (patch)
tree80c39ecee3a2a2e5047a1806dded55656837e68d /Library/Homebrew
parente1969af22c231c46faba627e0f093d60de52518e (diff)
downloadhomebrew-f13e0490beda38caead6bcb4508d4082ce65ee44.tar.bz2
Cleaner: do work in clean instead of constructor
Diffstat (limited to 'Library/Homebrew')
-rw-r--r--Library/Homebrew/cleaner.rb18
-rw-r--r--Library/Homebrew/formula_installer.rb2
-rw-r--r--Library/Homebrew/test/test_cleaner.rb32
3 files changed, 27 insertions, 25 deletions
diff --git a/Library/Homebrew/cleaner.rb b/Library/Homebrew/cleaner.rb
index 80a8c74e0..d22e70cc1 100644
--- a/Library/Homebrew/cleaner.rb
+++ b/Library/Homebrew/cleaner.rb
@@ -1,21 +1,23 @@
# Cleans a newly installed keg.
# By default:
-# * removes info files
# * removes .la files
# * removes empty directories
# * sets permissions on executables
class Cleaner
- # Create a cleaner for the given formula and clean its keg
+ # Create a cleaner for the given formula
def initialize f
- ObserverPathnameExtension.reset_counts!
-
@f = f
- [f.bin, f.sbin, f.lib].select{ |d| d.exist? }.each{ |d| clean_dir d }
+ end
+
+ # Clean the keg of formula @f
+ def clean
+ ObserverPathnameExtension.reset_counts!
+ [@f.bin, @f.sbin, @f.lib].select{ |d| d.exist? }.each{ |d| clean_dir d }
- # Get rid of the directory file, so it no longer bother us at link stage.
- info_dir_file = f.info + 'dir'
- if info_dir_file.file? and not f.skip_clean? info_dir_file
+ # Get rid of any info 'dir' files, so they don't conflict at the link stage
+ info_dir_file = @f.info + 'dir'
+ if info_dir_file.file? and not @f.skip_clean? info_dir_file
puts "rm #{info_dir_file}" if ARGV.verbose?
info_dir_file.unlink
end
diff --git a/Library/Homebrew/formula_installer.rb b/Library/Homebrew/formula_installer.rb
index b35eafef6..0a6031d42 100644
--- a/Library/Homebrew/formula_installer.rb
+++ b/Library/Homebrew/formula_installer.rb
@@ -490,7 +490,7 @@ class FormulaInstaller
puts "in the formula."
return
end
- Cleaner.new f
+ Cleaner.new(f).clean
rescue Exception => e
opoo "The cleaning step did not complete successfully"
puts "Still, the installation was successful, so we will link it into your prefix"
diff --git a/Library/Homebrew/test/test_cleaner.rb b/Library/Homebrew/test/test_cleaner.rb
index 3af088cef..6f1d5ce09 100644
--- a/Library/Homebrew/test/test_cleaner.rb
+++ b/Library/Homebrew/test/test_cleaner.rb
@@ -20,7 +20,7 @@ class CleanerTests < Test::Unit::TestCase
cp "#{TEST_FOLDER}/mach/a.out", @f.bin
cp Dir["#{TEST_FOLDER}/mach/*.dylib"], @f.lib
- Cleaner.new @f
+ Cleaner.new(@f).clean
assert_equal 0100555, (@f.bin/'a.out').stat.mode
assert_equal 0100444, (@f.lib/'fat.dylib').stat.mode
@@ -29,7 +29,7 @@ class CleanerTests < Test::Unit::TestCase
end
def test_prunes_prefix_if_empty
- Cleaner.new @f
+ Cleaner.new(@f).clean
assert !@f.prefix.directory?
end
@@ -37,7 +37,7 @@ class CleanerTests < Test::Unit::TestCase
subdir = @f.bin/'subdir'
subdir.mkpath
- Cleaner.new @f
+ Cleaner.new(@f).clean
assert !@f.bin.directory?
assert !subdir.directory?
@@ -47,7 +47,7 @@ class CleanerTests < Test::Unit::TestCase
@f.class.skip_clean 'bin'
@f.bin.mkpath
- Cleaner.new @f
+ Cleaner.new(@f).clean
assert @f.bin.directory?
end
@@ -57,7 +57,7 @@ class CleanerTests < Test::Unit::TestCase
subdir = @f.bin/'subdir'
subdir.mkpath
- Cleaner.new @f
+ Cleaner.new(@f).clean
assert @f.bin.directory?
assert subdir.directory?
@@ -70,7 +70,7 @@ class CleanerTests < Test::Unit::TestCase
dir.mkpath
ln_s dir.basename, symlink
- Cleaner.new @f
+ Cleaner.new(@f).clean
assert !dir.exist?
assert !symlink.symlink?
@@ -84,7 +84,7 @@ class CleanerTests < Test::Unit::TestCase
dir.mkpath
ln_s dir.basename, symlink
- Cleaner.new @f
+ Cleaner.new(@f).clean
assert !dir.exist?
assert !symlink.symlink?
@@ -95,7 +95,7 @@ class CleanerTests < Test::Unit::TestCase
symlink = @f.prefix/'symlink'
ln_s 'target', symlink
- Cleaner.new @f
+ Cleaner.new(@f).clean
assert !symlink.symlink?
end
@@ -105,7 +105,7 @@ class CleanerTests < Test::Unit::TestCase
symlink = @f.prefix/'symlink'
ln_s 'target', symlink
- Cleaner.new @f
+ Cleaner.new(@f).clean
assert symlink.symlink?
end
@@ -118,7 +118,7 @@ class CleanerTests < Test::Unit::TestCase
dir.mkpath
ln_s dir.basename, symlink
- Cleaner.new @f
+ Cleaner.new(@f).clean
assert !dir.exist?
assert symlink.symlink?
@@ -133,7 +133,7 @@ class CleanerTests < Test::Unit::TestCase
dir.mkpath
ln_s dir.basename, symlink
- Cleaner.new @f
+ Cleaner.new(@f).clean
assert !dir.exist?
assert symlink.symlink?
@@ -146,7 +146,7 @@ class CleanerTests < Test::Unit::TestCase
@f.lib.mkpath
touch file
- Cleaner.new @f
+ Cleaner.new(@f).clean
assert !file.exist?
end
@@ -158,7 +158,7 @@ class CleanerTests < Test::Unit::TestCase
@f.lib.mkpath
touch file
- Cleaner.new @f
+ Cleaner.new(@f).clean
assert file.exist?
end
@@ -169,7 +169,7 @@ class CleanerTests < Test::Unit::TestCase
@f.lib.mkpath
touch file
- Cleaner.new @f
+ Cleaner.new(@f).clean
assert !file.exist?
end
@@ -180,7 +180,7 @@ class CleanerTests < Test::Unit::TestCase
dir.mkpath
- Cleaner.new @f
+ Cleaner.new(@f).clean
assert dir.directory?
end
@@ -193,7 +193,7 @@ class CleanerTests < Test::Unit::TestCase
dir1.mkpath
dir2.mkpath
- Cleaner.new @f
+ Cleaner.new(@f).clean
assert dir1.exist?
assert !dir2.exist?