Merge pull request #10738 from hyuraku/cli/named_args-refactor-if-statements

cli/named_args: refactor if statements
This commit is contained in:
Rylan Polster 2021-02-28 21:55:36 -05:00 committed by GitHub
commit c45e0d6c7f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -265,28 +265,24 @@ module Homebrew
opt_prefix = HOMEBREW_PREFIX/"opt/#{rack.basename}" opt_prefix = HOMEBREW_PREFIX/"opt/#{rack.basename}"
begin begin
if opt_prefix.symlink? && opt_prefix.directory? return Keg.new(opt_prefix.resolved_path) if opt_prefix.symlink? && opt_prefix.directory?
Keg.new(opt_prefix.resolved_path) return Keg.new(linked_keg_ref.resolved_path) if linked_keg_ref.symlink? && linked_keg_ref.directory?
elsif linked_keg_ref.symlink? && linked_keg_ref.directory? return Keg.new(dirs.first) if dirs.length == 1
Keg.new(linked_keg_ref.resolved_path)
elsif dirs.length == 1 f = if name.include?("/") || File.exist?(name)
Keg.new(dirs.first) Formulary.factory(name)
else else
f = if name.include?("/") || File.exist?(name) Formulary.from_rack(rack)
Formulary.factory(name)
else
Formulary.from_rack(rack)
end
unless (prefix = f.latest_installed_prefix).directory?
raise MultipleVersionsInstalledError, <<~EOS
#{rack.basename} has multiple installed versions
Run `brew uninstall --force #{rack.basename}` to remove all versions.
EOS
end
Keg.new(prefix)
end end
unless (prefix = f.latest_installed_prefix).directory?
raise MultipleVersionsInstalledError, <<~EOS
#{rack.basename} has multiple installed versions
Run `brew uninstall --force #{rack.basename}` to remove all versions.
EOS
end
Keg.new(prefix)
rescue FormulaUnavailableError rescue FormulaUnavailableError
raise MultipleVersionsInstalledError, <<~EOS raise MultipleVersionsInstalledError, <<~EOS
Multiple kegs installed to #{rack} Multiple kegs installed to #{rack}