Refactor install methods
This commit is contained in:
		
							parent
							
								
									33e71c99dc
								
							
						
					
					
						commit
						30be3e2340
					
				@ -187,132 +187,15 @@ module Homebrew
 | 
				
			|||||||
      raise BuildFlagsError.new(build_flags, bottled: formulae.all?(&:bottled?)) if build_flags.present?
 | 
					      raise BuildFlagsError.new(build_flags, bottled: formulae.all?(&:bottled?)) if build_flags.present?
 | 
				
			||||||
    end
 | 
					    end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    installed_formulae = []
 | 
					    installed_formulae = formulae.select do |f|
 | 
				
			||||||
 | 
					      Install.install_formula?(
 | 
				
			||||||
    formulae.each do |f|
 | 
					        f,
 | 
				
			||||||
      # head-only without --HEAD is an error
 | 
					        head:              args.HEAD?,
 | 
				
			||||||
      if !args.HEAD? && f.stable.nil?
 | 
					        fetch_head:        args.fetch_HEAD?,
 | 
				
			||||||
        odie <<~EOS
 | 
					        only_dependencies: args.only_dependencies?,
 | 
				
			||||||
          #{f.full_name} is a head-only formula.
 | 
					        force:             args.force?,
 | 
				
			||||||
          To install it, run:
 | 
					        quiet:             args.quiet?,
 | 
				
			||||||
            brew install --HEAD #{f.full_name}
 | 
					      )
 | 
				
			||||||
        EOS
 | 
					 | 
				
			||||||
      end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      # --HEAD, fail with no head defined
 | 
					 | 
				
			||||||
      odie "No head is defined for #{f.full_name}" if args.HEAD? && f.head.nil?
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      installed_head_version = f.latest_head_version
 | 
					 | 
				
			||||||
      if installed_head_version &&
 | 
					 | 
				
			||||||
         !f.head_version_outdated?(installed_head_version, fetch_head: args.fetch_HEAD?)
 | 
					 | 
				
			||||||
        new_head_installed = true
 | 
					 | 
				
			||||||
      end
 | 
					 | 
				
			||||||
      prefix_installed = f.prefix.exist? && !f.prefix.children.empty?
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      if f.keg_only? && f.any_version_installed? && f.optlinked? && !args.force?
 | 
					 | 
				
			||||||
        # keg-only install is only possible when no other version is
 | 
					 | 
				
			||||||
        # linked to opt, because installing without any warnings can break
 | 
					 | 
				
			||||||
        # dependencies. Therefore before performing other checks we need to be
 | 
					 | 
				
			||||||
        # sure --force flag is passed.
 | 
					 | 
				
			||||||
        if f.outdated?
 | 
					 | 
				
			||||||
          optlinked_version = Keg.for(f.opt_prefix).version
 | 
					 | 
				
			||||||
          onoe <<~EOS
 | 
					 | 
				
			||||||
            #{f.full_name} #{optlinked_version} is already installed.
 | 
					 | 
				
			||||||
            To upgrade to #{f.version}, run:
 | 
					 | 
				
			||||||
              brew upgrade #{f.full_name}
 | 
					 | 
				
			||||||
          EOS
 | 
					 | 
				
			||||||
        elsif args.only_dependencies?
 | 
					 | 
				
			||||||
          installed_formulae << f
 | 
					 | 
				
			||||||
        elsif !args.quiet?
 | 
					 | 
				
			||||||
          opoo <<~EOS
 | 
					 | 
				
			||||||
            #{f.full_name} #{f.pkg_version} is already installed and up-to-date.
 | 
					 | 
				
			||||||
            To reinstall #{f.pkg_version}, run:
 | 
					 | 
				
			||||||
              brew reinstall #{f.name}
 | 
					 | 
				
			||||||
          EOS
 | 
					 | 
				
			||||||
        end
 | 
					 | 
				
			||||||
      elsif (args.HEAD? && new_head_installed) || prefix_installed
 | 
					 | 
				
			||||||
        # After we're sure that --force flag is passed for linked to opt
 | 
					 | 
				
			||||||
        # keg-only we need to be sure that the version we're attempting to
 | 
					 | 
				
			||||||
        # install is not already installed.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        installed_version = if args.HEAD?
 | 
					 | 
				
			||||||
          f.latest_head_version
 | 
					 | 
				
			||||||
        else
 | 
					 | 
				
			||||||
          f.pkg_version
 | 
					 | 
				
			||||||
        end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        msg = "#{f.full_name} #{installed_version} is already installed"
 | 
					 | 
				
			||||||
        linked_not_equals_installed = f.linked_version != installed_version
 | 
					 | 
				
			||||||
        if f.linked? && linked_not_equals_installed
 | 
					 | 
				
			||||||
          msg = if args.quiet?
 | 
					 | 
				
			||||||
            nil
 | 
					 | 
				
			||||||
          else
 | 
					 | 
				
			||||||
            <<~EOS
 | 
					 | 
				
			||||||
              #{msg}.
 | 
					 | 
				
			||||||
              The currently linked version is: #{f.linked_version}
 | 
					 | 
				
			||||||
            EOS
 | 
					 | 
				
			||||||
          end
 | 
					 | 
				
			||||||
        elsif !f.linked? || f.keg_only?
 | 
					 | 
				
			||||||
          msg = <<~EOS
 | 
					 | 
				
			||||||
            #{msg}, it's just not linked.
 | 
					 | 
				
			||||||
            To link this version, run:
 | 
					 | 
				
			||||||
              brew link #{f}
 | 
					 | 
				
			||||||
          EOS
 | 
					 | 
				
			||||||
        elsif args.only_dependencies?
 | 
					 | 
				
			||||||
          msg = nil
 | 
					 | 
				
			||||||
          installed_formulae << f
 | 
					 | 
				
			||||||
        else
 | 
					 | 
				
			||||||
          msg = if args.quiet?
 | 
					 | 
				
			||||||
            nil
 | 
					 | 
				
			||||||
          else
 | 
					 | 
				
			||||||
            <<~EOS
 | 
					 | 
				
			||||||
              #{msg} and up-to-date.
 | 
					 | 
				
			||||||
              To reinstall #{f.pkg_version}, run:
 | 
					 | 
				
			||||||
                brew reinstall #{f.name}
 | 
					 | 
				
			||||||
            EOS
 | 
					 | 
				
			||||||
          end
 | 
					 | 
				
			||||||
        end
 | 
					 | 
				
			||||||
        opoo msg if msg
 | 
					 | 
				
			||||||
      elsif !f.any_version_installed? && (old_formula = f.old_installed_formulae.first)
 | 
					 | 
				
			||||||
        msg = "#{old_formula.full_name} #{old_formula.any_installed_version} already installed"
 | 
					 | 
				
			||||||
        msg = if !old_formula.linked? && !old_formula.keg_only?
 | 
					 | 
				
			||||||
          <<~EOS
 | 
					 | 
				
			||||||
            #{msg}, it's just not linked.
 | 
					 | 
				
			||||||
            To link this version, run:
 | 
					 | 
				
			||||||
              brew link #{old_formula.full_name}
 | 
					 | 
				
			||||||
          EOS
 | 
					 | 
				
			||||||
        elsif args.quiet?
 | 
					 | 
				
			||||||
          nil
 | 
					 | 
				
			||||||
        else
 | 
					 | 
				
			||||||
          "#{msg}."
 | 
					 | 
				
			||||||
        end
 | 
					 | 
				
			||||||
        opoo msg if msg
 | 
					 | 
				
			||||||
      elsif f.migration_needed? && !args.force?
 | 
					 | 
				
			||||||
        # Check if the formula we try to install is the same as installed
 | 
					 | 
				
			||||||
        # but not migrated one. If --force is passed then install anyway.
 | 
					 | 
				
			||||||
        opoo <<~EOS
 | 
					 | 
				
			||||||
          #{f.oldname} is already installed, it's just not migrated.
 | 
					 | 
				
			||||||
          To migrate this formula, run:
 | 
					 | 
				
			||||||
            brew migrate #{f}
 | 
					 | 
				
			||||||
          Or to force-install it, run:
 | 
					 | 
				
			||||||
            brew install #{f} --force
 | 
					 | 
				
			||||||
        EOS
 | 
					 | 
				
			||||||
      else
 | 
					 | 
				
			||||||
        # If none of the above is true and the formula is linked, then
 | 
					 | 
				
			||||||
        # FormulaInstaller will handle this case.
 | 
					 | 
				
			||||||
        installed_formulae << f
 | 
					 | 
				
			||||||
      end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      # Even if we don't install this formula mark it as no longer just
 | 
					 | 
				
			||||||
      # installed as a dependency.
 | 
					 | 
				
			||||||
      next unless f.opt_prefix.directory?
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      keg = Keg.new(f.opt_prefix.resolved_path)
 | 
					 | 
				
			||||||
      tab = Tab.for_keg(keg)
 | 
					 | 
				
			||||||
      unless tab.installed_on_request
 | 
					 | 
				
			||||||
        tab.installed_on_request = true
 | 
					 | 
				
			||||||
        tab.write
 | 
					 | 
				
			||||||
      end
 | 
					 | 
				
			||||||
    end
 | 
					    end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    return if installed_formulae.empty?
 | 
					    return if installed_formulae.empty?
 | 
				
			||||||
@ -321,7 +204,24 @@ module Homebrew
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    installed_formulae.each do |f|
 | 
					    installed_formulae.each do |f|
 | 
				
			||||||
      Migrator.migrate_if_needed(f, force: args.force?)
 | 
					      Migrator.migrate_if_needed(f, force: args.force?)
 | 
				
			||||||
      install_formula(f, args: args)
 | 
					      Install.install_formula(
 | 
				
			||||||
 | 
					        f,
 | 
				
			||||||
 | 
					        build_bottle:               args.build_bottle?,
 | 
				
			||||||
 | 
					        force_bottle:               args.force_bottle?,
 | 
				
			||||||
 | 
					        bottle_arch:                args.bottle_arch,
 | 
				
			||||||
 | 
					        ignore_deps:                args.ignore_dependencies?,
 | 
				
			||||||
 | 
					        only_deps:                  args.only_dependencies?,
 | 
				
			||||||
 | 
					        include_test_formulae:      args.include_test_formulae,
 | 
				
			||||||
 | 
					        build_from_source_formulae: args.build_from_source_formulae,
 | 
				
			||||||
 | 
					        cc:                         args.cc,
 | 
				
			||||||
 | 
					        git:                        args.git?,
 | 
				
			||||||
 | 
					        interactive:                args.interactive?,
 | 
				
			||||||
 | 
					        keep_tmp:                   args.keep_tmp?,
 | 
				
			||||||
 | 
					        force:                      args.force?,
 | 
				
			||||||
 | 
					        debug:                      args.debug?,
 | 
				
			||||||
 | 
					        quiet:                      args.quiet?,
 | 
				
			||||||
 | 
					        verbose:                    args.verbose?,
 | 
				
			||||||
 | 
					      )
 | 
				
			||||||
      Cleanup.install_formula_clean!(f)
 | 
					      Cleanup.install_formula_clean!(f)
 | 
				
			||||||
    end
 | 
					    end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -391,41 +291,4 @@ module Homebrew
 | 
				
			|||||||
      puts "To install one of them, run (for example):\n  brew install #{taps_search_results.first}"
 | 
					      puts "To install one of them, run (for example):\n  brew install #{taps_search_results.first}"
 | 
				
			||||||
    end
 | 
					    end
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
 | 
					 | 
				
			||||||
  def install_formula(f, args:)
 | 
					 | 
				
			||||||
    f.print_tap_action
 | 
					 | 
				
			||||||
    build_options = f.build
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    fi = FormulaInstaller.new(
 | 
					 | 
				
			||||||
      f,
 | 
					 | 
				
			||||||
      **{
 | 
					 | 
				
			||||||
        options:                    build_options.used_options,
 | 
					 | 
				
			||||||
        build_bottle:               args.build_bottle?,
 | 
					 | 
				
			||||||
        force_bottle:               args.force_bottle?,
 | 
					 | 
				
			||||||
        bottle_arch:                args.bottle_arch,
 | 
					 | 
				
			||||||
        ignore_deps:                args.ignore_dependencies?,
 | 
					 | 
				
			||||||
        only_deps:                  args.only_dependencies?,
 | 
					 | 
				
			||||||
        include_test_formulae:      args.include_test_formulae,
 | 
					 | 
				
			||||||
        build_from_source_formulae: args.build_from_source_formulae,
 | 
					 | 
				
			||||||
        cc:                         args.cc,
 | 
					 | 
				
			||||||
        git:                        args.git?,
 | 
					 | 
				
			||||||
        interactive:                args.interactive?,
 | 
					 | 
				
			||||||
        keep_tmp:                   args.keep_tmp?,
 | 
					 | 
				
			||||||
        force:                      args.force?,
 | 
					 | 
				
			||||||
        debug:                      args.debug?,
 | 
					 | 
				
			||||||
        quiet:                      args.quiet?,
 | 
					 | 
				
			||||||
        verbose:                    args.verbose?,
 | 
					 | 
				
			||||||
      }.compact,
 | 
					 | 
				
			||||||
    )
 | 
					 | 
				
			||||||
    fi.prelude
 | 
					 | 
				
			||||||
    fi.fetch
 | 
					 | 
				
			||||||
    fi.install
 | 
					 | 
				
			||||||
    fi.finish
 | 
					 | 
				
			||||||
  rescue FormulaInstallationAlreadyAttemptedError
 | 
					 | 
				
			||||||
    # We already attempted to install f as part of the dependency tree of
 | 
					 | 
				
			||||||
    # another formula. In that case, don't generate an error, just move on.
 | 
					 | 
				
			||||||
    nil
 | 
					 | 
				
			||||||
  rescue CannotInstallFormulaError => e
 | 
					 | 
				
			||||||
    ofail e.message
 | 
					 | 
				
			||||||
  end
 | 
					 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
 | 
				
			|||||||
@ -90,6 +90,193 @@ module Homebrew
 | 
				
			|||||||
      EOS
 | 
					      EOS
 | 
				
			||||||
    end
 | 
					    end
 | 
				
			||||||
    private_class_method :check_cc_argv
 | 
					    private_class_method :check_cc_argv
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def install_formula?(
 | 
				
			||||||
 | 
					      f,
 | 
				
			||||||
 | 
					      head: false,
 | 
				
			||||||
 | 
					      fetch_head: false,
 | 
				
			||||||
 | 
					      only_dependencies: false,
 | 
				
			||||||
 | 
					      force: false,
 | 
				
			||||||
 | 
					      quiet: false
 | 
				
			||||||
 | 
					    )
 | 
				
			||||||
 | 
					      # head-only without --HEAD is an error
 | 
				
			||||||
 | 
					      if !head && f.stable.nil?
 | 
				
			||||||
 | 
					        odie <<~EOS
 | 
				
			||||||
 | 
					          #{f.full_name} is a head-only formula.
 | 
				
			||||||
 | 
					          To install it, run:
 | 
				
			||||||
 | 
					            brew install --HEAD #{f.full_name}
 | 
				
			||||||
 | 
					        EOS
 | 
				
			||||||
 | 
					      end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      # --HEAD, fail with no head defined
 | 
				
			||||||
 | 
					      odie "No head is defined for #{f.full_name}" if head && f.head.nil?
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      installed_head_version = f.latest_head_version
 | 
				
			||||||
 | 
					      if installed_head_version &&
 | 
				
			||||||
 | 
					         !f.head_version_outdated?(installed_head_version, fetch_head: fetch_head)
 | 
				
			||||||
 | 
					        new_head_installed = true
 | 
				
			||||||
 | 
					      end
 | 
				
			||||||
 | 
					      prefix_installed = f.prefix.exist? && !f.prefix.children.empty?
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      if f.keg_only? && f.any_version_installed? && f.optlinked? && force
 | 
				
			||||||
 | 
					        # keg-only install is only possible when no other version is
 | 
				
			||||||
 | 
					        # linked to opt, because installing without any warnings can break
 | 
				
			||||||
 | 
					        # dependencies. Therefore before performing other checks we need to be
 | 
				
			||||||
 | 
					        # sure --force flag is passed.
 | 
				
			||||||
 | 
					        if f.outdated?
 | 
				
			||||||
 | 
					          optlinked_version = Keg.for(f.opt_prefix).version
 | 
				
			||||||
 | 
					          onoe <<~EOS
 | 
				
			||||||
 | 
					            #{f.full_name} #{optlinked_version} is already installed.
 | 
				
			||||||
 | 
					            To upgrade to #{f.version}, run:
 | 
				
			||||||
 | 
					              brew upgrade #{f.full_name}
 | 
				
			||||||
 | 
					          EOS
 | 
				
			||||||
 | 
					        elsif only_dependencies
 | 
				
			||||||
 | 
					          return true
 | 
				
			||||||
 | 
					        elsif quiet
 | 
				
			||||||
 | 
					          opoo <<~EOS
 | 
				
			||||||
 | 
					            #{f.full_name} #{f.pkg_version} is already installed and up-to-date.
 | 
				
			||||||
 | 
					            To reinstall #{f.pkg_version}, run:
 | 
				
			||||||
 | 
					              brew reinstall #{f.name}
 | 
				
			||||||
 | 
					          EOS
 | 
				
			||||||
 | 
					        end
 | 
				
			||||||
 | 
					      elsif (head && new_head_installed) || prefix_installed
 | 
				
			||||||
 | 
					        # After we're sure that --force flag is passed for linked to opt
 | 
				
			||||||
 | 
					        # keg-only we need to be sure that the version we're attempting to
 | 
				
			||||||
 | 
					        # install is not already installed.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        installed_version = if head
 | 
				
			||||||
 | 
					          f.latest_head_version
 | 
				
			||||||
 | 
					        else
 | 
				
			||||||
 | 
					          f.pkg_version
 | 
				
			||||||
 | 
					        end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        msg = "#{f.full_name} #{installed_version} is already installed"
 | 
				
			||||||
 | 
					        linked_not_equals_installed = f.linked_version != installed_version
 | 
				
			||||||
 | 
					        if f.linked? && linked_not_equals_installed
 | 
				
			||||||
 | 
					          msg = if quiet
 | 
				
			||||||
 | 
					            nil
 | 
				
			||||||
 | 
					          else
 | 
				
			||||||
 | 
					            <<~EOS
 | 
				
			||||||
 | 
					              #{msg}.
 | 
				
			||||||
 | 
					              The currently linked version is: #{f.linked_version}
 | 
				
			||||||
 | 
					            EOS
 | 
				
			||||||
 | 
					          end
 | 
				
			||||||
 | 
					        elsif !f.linked? || f.keg_only?
 | 
				
			||||||
 | 
					          msg = <<~EOS
 | 
				
			||||||
 | 
					            #{msg}, it's just not linked.
 | 
				
			||||||
 | 
					            To link this version, run:
 | 
				
			||||||
 | 
					              brew link #{f}
 | 
				
			||||||
 | 
					          EOS
 | 
				
			||||||
 | 
					        elsif only_dependencies
 | 
				
			||||||
 | 
					          msg = nil
 | 
				
			||||||
 | 
					          return true
 | 
				
			||||||
 | 
					        else
 | 
				
			||||||
 | 
					          msg = if quiet
 | 
				
			||||||
 | 
					            nil
 | 
				
			||||||
 | 
					          else
 | 
				
			||||||
 | 
					            <<~EOS
 | 
				
			||||||
 | 
					              #{msg} and up-to-date.
 | 
				
			||||||
 | 
					              To reinstall #{f.pkg_version}, run:
 | 
				
			||||||
 | 
					                brew reinstall #{f.name}
 | 
				
			||||||
 | 
					            EOS
 | 
				
			||||||
 | 
					          end
 | 
				
			||||||
 | 
					        end
 | 
				
			||||||
 | 
					        opoo msg if msg
 | 
				
			||||||
 | 
					      elsif !f.any_version_installed? && (old_formula = f.old_installed_formulae.first)
 | 
				
			||||||
 | 
					        msg = "#{old_formula.full_name} #{old_formula.any_installed_version} already installed"
 | 
				
			||||||
 | 
					        msg = if !old_formula.linked? && !old_formula.keg_only?
 | 
				
			||||||
 | 
					          <<~EOS
 | 
				
			||||||
 | 
					            #{msg}, it's just not linked.
 | 
				
			||||||
 | 
					            To link this version, run:
 | 
				
			||||||
 | 
					              brew link #{old_formula.full_name}
 | 
				
			||||||
 | 
					          EOS
 | 
				
			||||||
 | 
					        elsif quiet
 | 
				
			||||||
 | 
					          nil
 | 
				
			||||||
 | 
					        else
 | 
				
			||||||
 | 
					          "#{msg}."
 | 
				
			||||||
 | 
					        end
 | 
				
			||||||
 | 
					        opoo msg if msg
 | 
				
			||||||
 | 
					      elsif f.migration_needed? && force
 | 
				
			||||||
 | 
					        # Check if the formula we try to install is the same as installed
 | 
				
			||||||
 | 
					        # but not migrated one. If --force is passed then install anyway.
 | 
				
			||||||
 | 
					        opoo <<~EOS
 | 
				
			||||||
 | 
					          #{f.oldname} is already installed, it's just not migrated.
 | 
				
			||||||
 | 
					          To migrate this formula, run:
 | 
				
			||||||
 | 
					            brew migrate #{f}
 | 
				
			||||||
 | 
					          Or to force-install it, run:
 | 
				
			||||||
 | 
					            brew install #{f} --force
 | 
				
			||||||
 | 
					        EOS
 | 
				
			||||||
 | 
					      else
 | 
				
			||||||
 | 
					        # If none of the above is true and the formula is linked, then
 | 
				
			||||||
 | 
					        # FormulaInstaller will handle this case.
 | 
				
			||||||
 | 
					        return true
 | 
				
			||||||
 | 
					      end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      # Even if we don't install this formula mark it as no longer just
 | 
				
			||||||
 | 
					      # installed as a dependency.
 | 
				
			||||||
 | 
					      return false unless f.opt_prefix.directory?
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      keg = Keg.new(f.opt_prefix.resolved_path)
 | 
				
			||||||
 | 
					      tab = Tab.for_keg(keg)
 | 
				
			||||||
 | 
					      unless tab.installed_on_request
 | 
				
			||||||
 | 
					        tab.installed_on_request = true
 | 
				
			||||||
 | 
					        tab.write
 | 
				
			||||||
 | 
					      end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      false
 | 
				
			||||||
 | 
					    end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def install_formula(
 | 
				
			||||||
 | 
					      f,
 | 
				
			||||||
 | 
					      build_bottle: false,
 | 
				
			||||||
 | 
					      force_bottle: false,
 | 
				
			||||||
 | 
					      bottle_arch: nil,
 | 
				
			||||||
 | 
					      ignore_deps: false,
 | 
				
			||||||
 | 
					      only_deps: false,
 | 
				
			||||||
 | 
					      include_test_formulae: [],
 | 
				
			||||||
 | 
					      build_from_source_formulae: [],
 | 
				
			||||||
 | 
					      cc: nil,
 | 
				
			||||||
 | 
					      git: false,
 | 
				
			||||||
 | 
					      interactive: false,
 | 
				
			||||||
 | 
					      keep_tmp: false,
 | 
				
			||||||
 | 
					      force: false,
 | 
				
			||||||
 | 
					      debug: false,
 | 
				
			||||||
 | 
					      quiet: false,
 | 
				
			||||||
 | 
					      verbose: false
 | 
				
			||||||
 | 
					    )
 | 
				
			||||||
 | 
					      f.print_tap_action
 | 
				
			||||||
 | 
					      build_options = f.build
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      fi = FormulaInstaller.new(
 | 
				
			||||||
 | 
					        f,
 | 
				
			||||||
 | 
					        options:                    build_options.used_options,
 | 
				
			||||||
 | 
					        build_bottle:               build_bottle,
 | 
				
			||||||
 | 
					        force_bottle:               force_bottle,
 | 
				
			||||||
 | 
					        bottle_arch:                bottle_arch,
 | 
				
			||||||
 | 
					        ignore_deps:                ignore_deps,
 | 
				
			||||||
 | 
					        only_deps:                  only_deps,
 | 
				
			||||||
 | 
					        include_test_formulae:      include_test_formulae,
 | 
				
			||||||
 | 
					        build_from_source_formulae: build_from_source_formulae,
 | 
				
			||||||
 | 
					        cc:                         cc,
 | 
				
			||||||
 | 
					        git:                        git,
 | 
				
			||||||
 | 
					        interactive:                interactive,
 | 
				
			||||||
 | 
					        keep_tmp:                   keep_tmp,
 | 
				
			||||||
 | 
					        force:                      force,
 | 
				
			||||||
 | 
					        debug:                      debug,
 | 
				
			||||||
 | 
					        quiet:                      quiet,
 | 
				
			||||||
 | 
					        verbose:                    verbose,
 | 
				
			||||||
 | 
					      )
 | 
				
			||||||
 | 
					      fi.prelude
 | 
				
			||||||
 | 
					      fi.fetch
 | 
				
			||||||
 | 
					      fi.install
 | 
				
			||||||
 | 
					      fi.finish
 | 
				
			||||||
 | 
					    rescue FormulaInstallationAlreadyAttemptedError
 | 
				
			||||||
 | 
					      # We already attempted to install f as part of the dependency tree of
 | 
				
			||||||
 | 
					      # another formula. In that case, don't generate an error, just move on.
 | 
				
			||||||
 | 
					      nil
 | 
				
			||||||
 | 
					    rescue CannotInstallFormulaError => e
 | 
				
			||||||
 | 
					      ofail e.message
 | 
				
			||||||
 | 
					    end
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user