From 14ef15f591795c517b7771c5eb01863b2b577a46 Mon Sep 17 00:00:00 2001 From: ilovezfs Date: Fri, 30 Sep 2016 03:22:09 -0700 Subject: keg: create symlinks in opt for formula aliases --- Library/Homebrew/keg.rb | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'Library') diff --git a/Library/Homebrew/keg.rb b/Library/Homebrew/keg.rb index 17ff3bcef..bebc3c887 100644 --- a/Library/Homebrew/keg.rb +++ b/Library/Homebrew/keg.rb @@ -239,6 +239,11 @@ class Keg def remove_opt_record opt_record.unlink + unless aliases.empty? + aliases.each do |a| + (opt_record.parent/a).unlink + end + end opt_record.parent.rmdir_if_possible end @@ -461,9 +466,25 @@ class Keg @oldname_opt_record = nil end + def aliases + formula_name = rack.basename.to_s + aliases_path = Formula[formula_name].tap.path/"Aliases" + result = aliases_path.children.select do |c| + c.symlink? && c.readlink.basename(".rb").to_s == formula_name + end + result.map(&:basename).map(&:to_s) + end + def optlink(mode = OpenStruct.new) opt_record.delete if opt_record.symlink? || opt_record.exist? make_relative_symlink(opt_record, path, mode) + unless aliases.empty? + aliases.each do |a| + alias_opt_record = opt_record.parent/a + alias_opt_record.delete if alias_opt_record.symlink? || alias_opt_record.exist? + make_relative_symlink(alias_opt_record, opt_record, mode) + end + end return unless oldname_opt_record oldname_opt_record.delete -- cgit v1.2.3 From 4c922a089bf2bb8ff379291c90d46b91978dbbb4 Mon Sep 17 00:00:00 2001 From: ilovezfs Date: Mon, 3 Oct 2016 02:41:17 -0700 Subject: remove unless empty since each is no-op for empty --- Library/Homebrew/keg.rb | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) (limited to 'Library') diff --git a/Library/Homebrew/keg.rb b/Library/Homebrew/keg.rb index bebc3c887..06ac68310 100644 --- a/Library/Homebrew/keg.rb +++ b/Library/Homebrew/keg.rb @@ -239,10 +239,8 @@ class Keg def remove_opt_record opt_record.unlink - unless aliases.empty? - aliases.each do |a| - (opt_record.parent/a).unlink - end + aliases.each do |a| + (opt_record.parent/a).unlink end opt_record.parent.rmdir_if_possible end @@ -478,12 +476,10 @@ class Keg def optlink(mode = OpenStruct.new) opt_record.delete if opt_record.symlink? || opt_record.exist? make_relative_symlink(opt_record, path, mode) - unless aliases.empty? - aliases.each do |a| - alias_opt_record = opt_record.parent/a - alias_opt_record.delete if alias_opt_record.symlink? || alias_opt_record.exist? - make_relative_symlink(alias_opt_record, opt_record, mode) - end + aliases.each do |a| + alias_opt_record = opt_record.parent/a + alias_opt_record.delete if alias_opt_record.symlink? || alias_opt_record.exist? + make_relative_symlink(alias_opt_record, opt_record, mode) end return unless oldname_opt_record -- cgit v1.2.3 From 63295fd81af2b3fa5dc8e933f904b6959727f62e Mon Sep 17 00:00:00 2001 From: ilovezfs Date: Mon, 3 Oct 2016 02:42:33 -0700 Subject: have opt alias symlink point into the Cellar in case people expect to be able to find the prefix by only resolving the symlink once (e.g., if they're using readlink not realpath) --- Library/Homebrew/keg.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'Library') diff --git a/Library/Homebrew/keg.rb b/Library/Homebrew/keg.rb index 06ac68310..dfbf0ad98 100644 --- a/Library/Homebrew/keg.rb +++ b/Library/Homebrew/keg.rb @@ -479,7 +479,7 @@ class Keg aliases.each do |a| alias_opt_record = opt_record.parent/a alias_opt_record.delete if alias_opt_record.symlink? || alias_opt_record.exist? - make_relative_symlink(alias_opt_record, opt_record, mode) + make_relative_symlink(alias_opt_record, path, mode) end return unless oldname_opt_record -- cgit v1.2.3 From dfa2c247e0dbdbf506f5175a1c839bfd09caecd9 Mon Sep 17 00:00:00 2001 From: Mike McQuaid Date: Mon, 20 Feb 2017 14:23:01 +0000 Subject: keg: simplify code, handle exceptions. --- Library/Homebrew/keg.rb | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) (limited to 'Library') diff --git a/Library/Homebrew/keg.rb b/Library/Homebrew/keg.rb index dfbf0ad98..b31997d5a 100644 --- a/Library/Homebrew/keg.rb +++ b/Library/Homebrew/keg.rb @@ -239,9 +239,7 @@ class Keg def remove_opt_record opt_record.unlink - aliases.each do |a| - (opt_record.parent/a).unlink - end + aliases.each { |a| (opt_record.parent/a).unlink } opt_record.parent.rmdir_if_possible end @@ -465,12 +463,9 @@ class Keg end def aliases - formula_name = rack.basename.to_s - aliases_path = Formula[formula_name].tap.path/"Aliases" - result = aliases_path.children.select do |c| - c.symlink? && c.readlink.basename(".rb").to_s == formula_name - end - result.map(&:basename).map(&:to_s) + Formula[rack.basename.to_s].aliases + rescue FormulaUnavailableError + [] end def optlink(mode = OpenStruct.new) -- cgit v1.2.3