From 72d10fff0be917df691b02b07b07dccfc8f1d760 Mon Sep 17 00:00:00 2001 From: Mike McQuaid Date: Thu, 15 Sep 2016 18:28:42 +0100 Subject: [PATCH] Use constants for LinkedKegs/PinnedKegs/Locks. These definitions are scattered throughout the codebase which makes it hard to refactor them later (my goal is to move them outside of HOMEBREW_LIBRARY). Unify their definitions for clearer code and easier movement later. --- Library/Homebrew/cmd/list.rb | 2 +- Library/Homebrew/diagnostic.rb | 2 +- Library/Homebrew/extend/ARGV.rb | 4 +-- Library/Homebrew/formula.rb | 4 +-- Library/Homebrew/formula_lock.rb | 6 ++-- Library/Homebrew/formula_pin.rb | 8 ++---- Library/Homebrew/global.rb | 3 ++ Library/Homebrew/keg.rb | 4 +-- Library/Homebrew/migrator.rb | 4 +-- Library/Homebrew/test/test_formula.rb | 2 +- .../Homebrew/test/test_formula_installer.rb | 4 +-- Library/Homebrew/test/test_formula_lock.rb | 2 +- Library/Homebrew/test/test_formula_pin.rb | 10 +++---- .../Homebrew/test/test_integration_cmds.rb | 8 +++--- Library/Homebrew/test/test_migrator.rb | 28 +++++++++---------- 15 files changed, 45 insertions(+), 46 deletions(-) diff --git a/Library/Homebrew/cmd/list.rb b/Library/Homebrew/cmd/list.rb index 9d5de74cc0..ba236068d1 100644 --- a/Library/Homebrew/cmd/list.rb +++ b/Library/Homebrew/cmd/list.rb @@ -111,7 +111,7 @@ module Homebrew if ARGV.include? "--pinned" pinned_versions = {} names.each do |d| - keg_pin = (HOMEBREW_LIBRARY/"PinnedKegs"/d.basename.to_s) + keg_pin = (HOMEBREW_PINNED_KEGS/d.basename.to_s) if keg_pin.exist? || keg_pin.symlink? pinned_versions[d] = keg_pin.readlink.basename.to_s end diff --git a/Library/Homebrew/diagnostic.rb b/Library/Homebrew/diagnostic.rb index 1b3018251f..ff0d1f9bab 100644 --- a/Library/Homebrew/diagnostic.rb +++ b/Library/Homebrew/diagnostic.rb @@ -986,7 +986,7 @@ module Homebrew def check_for_unlinked_but_not_keg_only unlinked = Formula.racks.reject do |rack| - if !(HOMEBREW_REPOSITORY/"Library/LinkedKegs"/rack.basename).directory? + if !(HOMEBREW_LINKED_KEGS/rack.basename).directory? begin Formulary.from_rack(rack).keg_only? rescue FormulaUnavailableError, TapFormulaAmbiguityError, TapFormulaWithOldnameAmbiguityError diff --git a/Library/Homebrew/extend/ARGV.rb b/Library/Homebrew/extend/ARGV.rb index b9252c8ef4..63e46a1e24 100644 --- a/Library/Homebrew/extend/ARGV.rb +++ b/Library/Homebrew/extend/ARGV.rb @@ -59,8 +59,8 @@ module HomebrewArgvExtension raise NoSuchKegError, rack.basename if dirs.empty? - linked_keg_ref = HOMEBREW_LIBRARY.join("LinkedKegs", rack.basename) - opt_prefix = HOMEBREW_PREFIX.join("opt", rack.basename) + linked_keg_ref = HOMEBREW_LINKED_KEGS/rack.basename + opt_prefix = HOMEBREW_PREFIX/"opt/#{rack.basename}" begin if opt_prefix.symlink? && opt_prefix.directory? diff --git a/Library/Homebrew/formula.rb b/Library/Homebrew/formula.rb index db59fccc9f..2c24c93d7b 100644 --- a/Library/Homebrew/formula.rb +++ b/Library/Homebrew/formula.rb @@ -429,10 +429,10 @@ class Formula end # @private - # The `LinkedKegs` directory for this {Formula}. + # The link status symlink directory for this {Formula}. # You probably want {#opt_prefix} instead. def linked_keg - Pathname.new("#{HOMEBREW_LIBRARY}/LinkedKegs/#{name}") + HOMEBREW_LINKED_KEGS/name end def latest_head_version diff --git a/Library/Homebrew/formula_lock.rb b/Library/Homebrew/formula_lock.rb index 25cacdb722..1ce62b328f 100644 --- a/Library/Homebrew/formula_lock.rb +++ b/Library/Homebrew/formula_lock.rb @@ -1,16 +1,14 @@ require "fcntl" class FormulaLock - LOCKDIR = HOMEBREW_LOCK_DIR - def initialize(name) @name = name - @path = LOCKDIR.join("#{@name}.brewing") + @path = HOMEBREW_LOCK_DIR/"#{@name}.brewing" @lockfile = nil end def lock - LOCKDIR.mkpath + HOMEBREW_LOCK_DIR.mkpath @lockfile = get_or_create_lockfile unless @lockfile.flock(File::LOCK_EX | File::LOCK_NB) raise OperationInProgressError, @name diff --git a/Library/Homebrew/formula_pin.rb b/Library/Homebrew/formula_pin.rb index 0650c806f3..18352c93bf 100644 --- a/Library/Homebrew/formula_pin.rb +++ b/Library/Homebrew/formula_pin.rb @@ -1,18 +1,16 @@ require "keg" class FormulaPin - PINDIR = Pathname.new("#{HOMEBREW_LIBRARY}/PinnedKegs") - def initialize(f) @f = f end def path - Pathname.new("#{PINDIR}/#{@f.name}") + HOMEBREW_PINNED_KEGS/@f.name end def pin_at(version) - PINDIR.mkpath + HOMEBREW_PINNED_KEGS.mkpath version_path = @f.rack.join(version) path.make_relative_symlink(version_path) unless pinned? || !version_path.exist? end @@ -23,7 +21,7 @@ class FormulaPin def unpin path.unlink if pinned? - PINDIR.rmdir_if_possible + HOMEBREW_PINNED_KEGS.rmdir_if_possible end def pinned? diff --git a/Library/Homebrew/global.rb b/Library/Homebrew/global.rb index 8472eba5cb..36eb97baaa 100644 --- a/Library/Homebrew/global.rb +++ b/Library/Homebrew/global.rb @@ -22,6 +22,9 @@ require "config" HOMEBREW_REPOSITORY.extend(GitRepositoryExtension) +HOMEBREW_LINKED_KEGS = HOMEBREW_LIBRARY/"LinkedKegs" +HOMEBREW_PINNED_KEGS = HOMEBREW_LIBRARY/"PinnedKegs" + RUBY_PATH = Pathname.new(RbConfig.ruby) RUBY_BIN = RUBY_PATH.dirname diff --git a/Library/Homebrew/keg.rb b/Library/Homebrew/keg.rb index bc4b9ed6e8..468698576f 100644 --- a/Library/Homebrew/keg.rb +++ b/Library/Homebrew/keg.rb @@ -99,8 +99,8 @@ class Keg raise "#{path} is not a directory" unless path.directory? @path = path @name = path.parent.basename.to_s - @linked_keg_record = HOMEBREW_LIBRARY.join("LinkedKegs", name) - @opt_record = HOMEBREW_PREFIX.join("opt", name) + @linked_keg_record = HOMEBREW_LINKED_KEGS/name + @opt_record = HOMEBREW_PREFIX/"opt/#{name}" end def to_s diff --git a/Library/Homebrew/migrator.rb b/Library/Homebrew/migrator.rb index 5d6f5d4e6d..550f8e51a6 100644 --- a/Library/Homebrew/migrator.rb +++ b/Library/Homebrew/migrator.rb @@ -107,8 +107,8 @@ class Migrator @new_linked_keg_record = HOMEBREW_CELLAR/"#{newname}/#{File.basename(old_linked_keg)}" end - @old_pin_record = HOMEBREW_LIBRARY/"PinnedKegs"/oldname - @new_pin_record = HOMEBREW_LIBRARY/"PinnedKegs"/newname + @old_pin_record = HOMEBREW_PINNED_KEGS/oldname + @new_pin_record = HOMEBREW_PINNED_KEGS/newname @pinned = old_pin_record.symlink? @old_pin_link_record = old_pin_record.readlink if @pinned end diff --git a/Library/Homebrew/test/test_formula.rb b/Library/Homebrew/test/test_formula.rb index eb276073ae..07244a151d 100644 --- a/Library/Homebrew/test/test_formula.rb +++ b/Library/Homebrew/test/test_formula.rb @@ -505,7 +505,7 @@ class FormulaTests < Homebrew::TestCase f3.brew { f3.install } end - assert_equal HOMEBREW_LIBRARY.join("PinnedKegs/#{f1.name}").resolved_path, f1.prefix + assert_equal (HOMEBREW_PINNED_KEGS/f1.name).resolved_path, f1.prefix assert_predicate f1, :installed? assert_predicate f2, :installed? diff --git a/Library/Homebrew/test/test_formula_installer.rb b/Library/Homebrew/test/test_formula_installer.rb index 51bec7589b..da0404c359 100644 --- a/Library/Homebrew/test/test_formula_installer.rb +++ b/Library/Homebrew/test/test_formula_installer.rb @@ -114,8 +114,8 @@ class FormulaInstallerTests < Homebrew::TestCase end dependency.prefix("0.1").join("bin/a").mkpath - HOMEBREW_LIBRARY.join("PinnedKegs").mkpath - FileUtils.ln_s dependency.prefix("0.1"), HOMEBREW_LIBRARY.join("PinnedKegs/#{dep_name}") + HOMEBREW_PINNED_KEGS.mkpath + FileUtils.ln_s dependency.prefix("0.1"), HOMEBREW_PINNED_KEGS/dep_name dependency_keg = Keg.new(dependency.prefix("0.1")) dependency_keg.link diff --git a/Library/Homebrew/test/test_formula_lock.rb b/Library/Homebrew/test/test_formula_lock.rb index 542f0d3f38..80ee9dd258 100644 --- a/Library/Homebrew/test/test_formula_lock.rb +++ b/Library/Homebrew/test/test_formula_lock.rb @@ -9,7 +9,7 @@ class FormulaLockTests < Homebrew::TestCase def teardown @lock.unlock - FormulaLock::LOCKDIR.children.each(&:unlink) + HOMEBREW_LOCK_DIR.children.each(&:unlink) end def test_locking_file_with_existing_lock_raises_error diff --git a/Library/Homebrew/test/test_formula_pin.rb b/Library/Homebrew/test/test_formula_pin.rb index 515acdc0a7..297d7703e3 100644 --- a/Library/Homebrew/test/test_formula_pin.rb +++ b/Library/Homebrew/test/test_formula_pin.rb @@ -8,7 +8,7 @@ class FormulaPinTests < Homebrew::TestCase end def rack - Pathname.new("#{HOMEBREW_CELLAR}/#{name}") + HOMEBREW_CELLAR/name end def installed_prefixes @@ -31,21 +31,21 @@ class FormulaPinTests < Homebrew::TestCase end def test_pinnable_if_kegs_exist - (@f.rack+"0.1").mkpath + (@f.rack/"0.1").mkpath assert_predicate @pin, :pinnable? end def test_unpin - (@f.rack+"0.1").mkpath + (@f.rack/"0.1").mkpath @pin.pin assert_predicate @pin, :pinned? - assert_equal 1, FormulaPin::PINDIR.children.length + assert_equal 1, HOMEBREW_PINNED_KEGS.children.length @pin.unpin refute_predicate @pin, :pinned? - refute_predicate FormulaPin::PINDIR, :directory? + refute_predicate HOMEBREW_PINNED_KEGS, :directory? end def teardown diff --git a/Library/Homebrew/test/test_integration_cmds.rb b/Library/Homebrew/test/test_integration_cmds.rb index 812d26ba5f..5b64dfd85b 100644 --- a/Library/Homebrew/test/test_integration_cmds.rb +++ b/Library/Homebrew/test/test_integration_cmds.rb @@ -22,7 +22,7 @@ class IntegrationCommandTests < Homebrew::TestCase HOMEBREW_PREFIX/"bin", HOMEBREW_PREFIX/"share", HOMEBREW_PREFIX/"opt", - HOMEBREW_LIBRARY/"LinkedKegs", + HOMEBREW_LINKED_KEGS, HOMEBREW_LIBRARY/"Taps/caskroom", HOMEBREW_LIBRARY/"Taps/homebrew/homebrew-bundle", HOMEBREW_LIBRARY/"Taps/homebrew/homebrew-foo", @@ -533,12 +533,12 @@ class IntegrationCommandTests < Homebrew::TestCase setup_test_formula "testball" HOMEBREW_CELLAR.join("testball/0.1").mkpath - HOMEBREW_LIBRARY.join("PinnedKegs").mkpath - FileUtils.ln_s HOMEBREW_CELLAR.join("testball/0.1"), HOMEBREW_LIBRARY.join("PinnedKegs/testball") + HOMEBREW_PINNED_KEGS.mkpath + FileUtils.ln_s HOMEBREW_CELLAR.join("testball/0.1"), HOMEBREW_PINNED_KEGS/"testball" assert_match "testball is pinned. You must unpin it to reinstall.", cmd("reinstall", "testball") - HOMEBREW_LIBRARY.join("PinnedKegs").rmtree + HOMEBREW_PINNED_KEGS.rmtree end def test_home diff --git a/Library/Homebrew/test/test_migrator.rb b/Library/Homebrew/test/test_migrator.rb index 9ef881f76d..cefb8b7a34 100644 --- a/Library/Homebrew/test/test_migrator.rb +++ b/Library/Homebrew/test/test_migrator.rb @@ -60,7 +60,7 @@ class MigratorTests < Homebrew::TestCase @keg.link @keg.optlink - @old_pin = HOMEBREW_LIBRARY/"PinnedKegs/oldname" + @old_pin = HOMEBREW_PINNED_KEGS/"oldname" @old_pin.make_relative_symlink @old_keg_record @migrator = Migrator.new(@new_f) @@ -92,7 +92,7 @@ class MigratorTests < Homebrew::TestCase # What to do with pin? @new_f.unpin - FormulaLock::LOCKDIR.children.each(&:unlink) + HOMEBREW_LOCK_DIR.children.each(&:unlink) end def test_move_cellar @@ -117,7 +117,7 @@ class MigratorTests < Homebrew::TestCase def test_repin @new_keg_record.join("bin").mkpath - expected_relative = @new_keg_record.relative_path_from HOMEBREW_LIBRARY/"PinnedKegs" + expected_relative = @new_keg_record.relative_path_from HOMEBREW_PINNED_KEGS @migrator.repin @@ -127,13 +127,13 @@ class MigratorTests < Homebrew::TestCase end def test_unlink_oldname - assert_equal 1, HOMEBREW_LIBRARY.join("LinkedKegs").children.size - assert_equal 1, HOMEBREW_PREFIX.join("opt").children.size + assert_equal 1, HOMEBREW_LINKED_KEGS.children.size + assert_equal 1, (HOMEBREW_PREFIX/"opt").children.size shutup { @migrator.unlink_oldname } - refute_predicate HOMEBREW_LIBRARY/"LinkedKegs", :exist? - refute_predicate HOMEBREW_LIBRARY.join("bin"), :exist? + refute_predicate HOMEBREW_LINKED_KEGS, :exist? + refute_predicate HOMEBREW_LIBRARY/"bin", :exist? end def test_link_newname @@ -144,8 +144,8 @@ class MigratorTests < Homebrew::TestCase shutup { @migrator.link_newname } - assert_equal 1, HOMEBREW_LIBRARY.join("LinkedKegs").children.size - assert_equal 1, HOMEBREW_PREFIX.join("opt").children.size + assert_equal 1, HOMEBREW_LINKED_KEGS.children.size + assert_equal 1, (HOMEBREW_PREFIX/"opt").children.size end def test_link_oldname_opt @@ -182,12 +182,12 @@ class MigratorTests < Homebrew::TestCase assert_predicate @new_keg_record, :exist? assert_predicate @old_keg_record.parent, :symlink? - refute_predicate HOMEBREW_LIBRARY/"LinkedKegs/oldname", :exist? - assert_equal @new_keg_record.realpath, (HOMEBREW_LIBRARY/"LinkedKegs/newname").realpath + refute_predicate HOMEBREW_LINKED_KEGS/"oldname", :exist? + assert_equal @new_keg_record.realpath, (HOMEBREW_LINKED_KEGS/"newname").realpath assert_equal @new_keg_record.realpath, @old_keg_record.realpath assert_equal @new_keg_record.realpath, (HOMEBREW_PREFIX/"opt/oldname").realpath assert_equal @new_keg_record.parent.realpath, (HOMEBREW_CELLAR/"oldname").realpath - assert_equal @new_keg_record.realpath, (HOMEBREW_LIBRARY/"PinnedKegs/newname").realpath + assert_equal @new_keg_record.realpath, (HOMEBREW_PINNED_KEGS/"newname").realpath assert_equal @new_f.path.to_s, Tab.for_keg(@new_keg_record).source["path"] end @@ -234,9 +234,9 @@ class MigratorTests < Homebrew::TestCase def check_after_backup assert_predicate @old_keg_record.parent, :directory? refute_predicate @old_keg_record.parent.subdirs, :empty? - assert_predicate HOMEBREW_LIBRARY/"LinkedKegs/oldname", :exist? + assert_predicate HOMEBREW_LINKED_KEGS/"oldname", :exist? assert_predicate HOMEBREW_PREFIX/"opt/oldname", :exist? - assert_predicate HOMEBREW_LIBRARY/"PinnedKegs/oldname", :symlink? + assert_predicate HOMEBREW_PINNED_KEGS/"oldname", :symlink? assert_predicate @keg, :linked? end