| 
									
										
										
										
											2016-04-10 22:53:56 -04:00
										 |  |  | #:  * `install` [`--debug`] [`--env=`<std>|<super>] [`--ignore-dependencies`] [`--only-dependencies`] [`--cc=`<compiler>] [`--build-from-source`|`--force-bottle`] [`--devel`|`--HEAD`] [`--keep-tmp`] <formula>: | 
					
						
							| 
									
										
										
										
											2016-04-08 16:28:43 +02:00
										 |  |  | #:    Install <formula>. | 
					
						
							|  |  |  | #: | 
					
						
							|  |  |  | #:    <formula> is usually the name of the formula to install, but it can be specified | 
					
						
							| 
									
										
										
										
											2016-05-08 20:39:22 -06:00
										 |  |  | #:    in several different ways. See [SPECIFYING FORMULAE][]. | 
					
						
							| 
									
										
										
										
											2016-04-08 16:28:43 +02:00
										 |  |  | #: | 
					
						
							|  |  |  | #:    If `--debug` is passed and brewing fails, open an interactive debugging | 
					
						
							|  |  |  | #:    session with access to IRB or a shell inside the temporary build directory. | 
					
						
							|  |  |  | #: | 
					
						
							|  |  |  | #:    If `--env=std` is passed, use the standard build environment instead of superenv. | 
					
						
							|  |  |  | #: | 
					
						
							|  |  |  | #:    If `--env=super` is passed, use superenv even if the formula specifies the | 
					
						
							|  |  |  | #:    standard build environment. | 
					
						
							|  |  |  | #: | 
					
						
							|  |  |  | #:    If `--ignore-dependencies` is passed, skip installing any dependencies of | 
					
						
							|  |  |  | #:    any kind. If they are not already present, the formula will probably fail | 
					
						
							|  |  |  | #:    to install. | 
					
						
							|  |  |  | #: | 
					
						
							|  |  |  | #:    If `--only-dependencies` is passed, install the dependencies with specified | 
					
						
							|  |  |  | #:    options but do not install the specified formula. | 
					
						
							|  |  |  | #: | 
					
						
							|  |  |  | #:    If `--cc=`<compiler> is passed, attempt to compile using <compiler>. | 
					
						
							|  |  |  | #:    <compiler> should be the name of the compiler's executable, for instance | 
					
						
							|  |  |  | #:    `gcc-4.2` for Apple's GCC 4.2, or `gcc-4.9` for a Homebrew-provided GCC | 
					
						
							|  |  |  | #:    4.9. | 
					
						
							|  |  |  | #: | 
					
						
							| 
									
										
										
										
											2016-05-06 12:02:13 -07:00
										 |  |  | #:    If `--build-from-source` or `-s` is passed, compile the specified <formula> from | 
					
						
							|  |  |  | #:    source even if a bottle is provided. Dependencies will still be installed | 
					
						
							|  |  |  | #:    from bottles if they are available. | 
					
						
							|  |  |  | #: | 
					
						
							|  |  |  | #:    If `HOMEBREW_BUILD_FROM_SOURCE` is set, regardless of whether `--build-from-source` was | 
					
						
							|  |  |  | #:    passed, then both <formula> and the dependencies installed as part of this process | 
					
						
							|  |  |  | #:    are built from source even if bottles are available. | 
					
						
							| 
									
										
										
										
											2016-04-08 16:28:43 +02:00
										 |  |  | #: | 
					
						
							|  |  |  | #:    If `--force-bottle` is passed, install from a bottle if it exists | 
					
						
							|  |  |  | #:    for the current version of OS X, even if custom options are given. | 
					
						
							|  |  |  | #: | 
					
						
							|  |  |  | #:    If `--devel` is passed, and <formula> defines it, install the development version. | 
					
						
							|  |  |  | #: | 
					
						
							|  |  |  | #:    If `--HEAD` is passed, and <formula> defines it, install the HEAD version, | 
					
						
							|  |  |  | #:    aka master, trunk, unstable. | 
					
						
							|  |  |  | #: | 
					
						
							| 
									
										
										
										
											2016-05-18 23:43:42 -07:00
										 |  |  | #:    If `--keep-tmp` is passed, the temporary files created during installation | 
					
						
							|  |  |  | #:    are not deleted. | 
					
						
							| 
									
										
										
										
											2016-04-10 22:53:56 -04:00
										 |  |  | #: | 
					
						
							| 
									
										
										
										
											2016-04-08 16:28:43 +02:00
										 |  |  | #:    To install a newer version of HEAD use | 
					
						
							|  |  |  | #:    `brew rm <foo> && brew install --HEAD <foo>`. | 
					
						
							|  |  |  | #: | 
					
						
							|  |  |  | #:  * `install` `--interactive` [`--git`] <formula>: | 
					
						
							|  |  |  | #:    Download and patch <formula>, then open a shell. This allows the user to | 
					
						
							|  |  |  | #:    run `./configure --help` and otherwise determine how to turn the software | 
					
						
							|  |  |  | #:    package into a Homebrew formula. | 
					
						
							|  |  |  | #: | 
					
						
							|  |  |  | #:    If `--git` is passed, Homebrew will create a Git repository, useful for | 
					
						
							|  |  |  | #:    creating patches to the software. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-16 13:36:17 -05:00
										 |  |  | require "blacklist" | 
					
						
							| 
									
										
										
										
											2016-01-04 23:14:58 +01:00
										 |  |  | require "diagnostic" | 
					
						
							| 
									
										
										
										
											2014-06-16 13:36:17 -05:00
										 |  |  | require "cmd/search" | 
					
						
							|  |  |  | require "formula_installer" | 
					
						
							| 
									
										
										
										
											2015-12-19 19:10:22 +08:00
										 |  |  | require "tap" | 
					
						
							| 
									
										
										
										
											2014-06-16 13:36:17 -05:00
										 |  |  | require "hardware" | 
					
						
							| 
									
										
										
										
											2010-09-11 20:22:54 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-18 22:41:47 -05:00
										 |  |  | module Homebrew | 
					
						
							| 
									
										
										
										
											2010-09-11 20:22:54 +01:00
										 |  |  |   def install | 
					
						
							| 
									
										
										
										
											2012-02-04 00:01:29 -06:00
										 |  |  |     raise FormulaUnspecifiedError if ARGV.named.empty? | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-08-03 13:09:07 +01:00
										 |  |  |     if ARGV.include? "--head" | 
					
						
							| 
									
										
										
										
											2014-02-11 21:25:26 -08:00
										 |  |  |       raise "Specify `--HEAD` in uppercase to build from trunk." | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-11-14 03:52:59 +00:00
										 |  |  |     ARGV.named.each do |name| | 
					
						
							| 
									
										
										
										
											2015-12-07 00:04:40 +08:00
										 |  |  |       if !File.exist?(name) && | 
					
						
							|  |  |  |          (name =~ HOMEBREW_TAP_FORMULA_REGEX || name =~ HOMEBREW_CASK_TAP_FORMULA_REGEX) | 
					
						
							| 
									
										
										
										
											2015-12-02 14:35:42 +08:00
										 |  |  |         tap = Tap.fetch($1, $2) | 
					
						
							| 
									
										
										
										
											2015-11-09 07:25:26 -08:00
										 |  |  |         tap.install unless tap.installed? | 
					
						
							| 
									
										
										
										
											2013-10-21 04:25:24 +01:00
										 |  |  |       end | 
					
						
							| 
									
										
										
										
											2010-11-09 12:57:41 +00:00
										 |  |  |     end unless ARGV.force? | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-08-21 15:46:57 +01:00
										 |  |  |     begin | 
					
						
							| 
									
										
										
										
											2014-10-31 18:33:39 -05:00
										 |  |  |       formulae = [] | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-11-28 15:02:42 +00:00
										 |  |  |       if ARGV.casks.any? | 
					
						
							| 
									
										
										
										
											2015-03-05 15:36:40 +00:00
										 |  |  |         args = [] | 
					
						
							|  |  |  |         args << "--force" if ARGV.force? | 
					
						
							|  |  |  |         args << "--debug" if ARGV.debug? | 
					
						
							|  |  |  |         args << "--verbose" if ARGV.verbose? | 
					
						
							| 
									
										
										
										
											2014-11-28 15:02:42 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |         ARGV.casks.each do |c| | 
					
						
							| 
									
										
										
										
											2015-03-05 15:36:40 +00:00
										 |  |  |           cmd = "brew", "cask", "install", c, *args | 
					
						
							| 
									
										
										
										
											2014-11-28 15:02:42 +00:00
										 |  |  |           ohai cmd.join " " | 
					
						
							| 
									
										
										
										
											2014-12-26 15:39:34 -05:00
										 |  |  |           system(*cmd) | 
					
						
							| 
									
										
										
										
											2014-11-28 15:02:42 +00:00
										 |  |  |         end | 
					
						
							|  |  |  |       end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-06-29 14:09:57 -04:00
										 |  |  |       # if the user's flags will prevent bottle only-installations when no | 
					
						
							|  |  |  |       # developer tools are available, we need to stop them early on | 
					
						
							| 
									
										
										
										
											2015-07-26 16:49:16 -04:00
										 |  |  |       FormulaInstaller.prevent_build_flags unless MacOS.has_apple_developer_tools? | 
					
						
							| 
									
										
										
										
											2015-06-29 14:09:57 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-08-21 15:46:57 +01:00
										 |  |  |       ARGV.formulae.each do |f| | 
					
						
							| 
									
										
										
										
											2015-01-12 23:03:38 +00:00
										 |  |  |         # head-only without --HEAD is an error | 
					
						
							| 
									
										
										
										
											2015-08-03 13:09:07 +01:00
										 |  |  |         if !ARGV.build_head? && f.stable.nil? && f.devel.nil? | 
					
						
							| 
									
										
										
										
											2014-10-20 03:02:32 -05:00
										 |  |  |           raise <<-EOS.undent
 | 
					
						
							| 
									
										
										
										
											2015-05-27 21:00:09 +08:00
										 |  |  |           #{f.full_name} is a head-only formula | 
					
						
							|  |  |  |           Install with `brew install --HEAD #{f.full_name}` | 
					
						
							| 
									
										
										
										
											2014-08-21 15:46:57 +01:00
										 |  |  |           EOS | 
					
						
							|  |  |  |         end | 
					
						
							| 
									
										
										
										
											2014-06-16 13:38:14 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-01-12 23:03:38 +00:00
										 |  |  |         # devel-only without --devel is an error | 
					
						
							| 
									
										
										
										
											2015-08-03 13:09:07 +01:00
										 |  |  |         if !ARGV.build_devel? && f.stable.nil? && f.head.nil? | 
					
						
							| 
									
										
										
										
											2015-01-15 23:59:55 -05:00
										 |  |  |           raise <<-EOS.undent
 | 
					
						
							| 
									
										
										
										
											2015-05-27 21:00:09 +08:00
										 |  |  |           #{f.full_name} is a devel-only formula | 
					
						
							|  |  |  |           Install with `brew install --devel #{f.full_name}` | 
					
						
							| 
									
										
										
										
											2015-01-15 23:59:55 -05:00
										 |  |  |           EOS | 
					
						
							|  |  |  |         end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-08-03 13:09:07 +01:00
										 |  |  |         if ARGV.build_stable? && f.stable.nil? | 
					
						
							| 
									
										
										
										
											2015-05-27 21:00:09 +08:00
										 |  |  |           raise "#{f.full_name} has no stable download, please choose --devel or --HEAD" | 
					
						
							| 
									
										
										
										
											2015-01-12 23:03:38 +00:00
										 |  |  |         end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         # --HEAD, fail with no head defined | 
					
						
							| 
									
										
										
										
											2015-08-03 13:09:07 +01:00
										 |  |  |         if ARGV.build_head? && f.head.nil? | 
					
						
							| 
									
										
										
										
											2015-05-27 21:00:09 +08:00
										 |  |  |           raise "No head is defined for #{f.full_name}" | 
					
						
							| 
									
										
										
										
											2014-08-21 15:46:57 +01:00
										 |  |  |         end | 
					
						
							| 
									
										
										
										
											2014-10-31 18:33:39 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-01-12 23:03:38 +00:00
										 |  |  |         # --devel, fail with no devel defined | 
					
						
							| 
									
										
										
										
											2015-08-03 13:09:07 +01:00
										 |  |  |         if ARGV.build_devel? && f.devel.nil? | 
					
						
							| 
									
										
										
										
											2015-05-27 21:00:09 +08:00
										 |  |  |           raise "No devel block is defined for #{f.full_name}" | 
					
						
							| 
									
										
										
										
											2015-01-05 02:36:03 +00:00
										 |  |  |         end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-10-31 18:33:39 -05:00
										 |  |  |         if f.installed? | 
					
						
							| 
									
										
										
										
											2015-05-27 21:00:09 +08:00
										 |  |  |           msg = "#{f.full_name}-#{f.installed_version} already installed" | 
					
						
							| 
									
										
										
										
											2015-08-25 15:38:25 +02:00
										 |  |  |           msg << ", it's just not linked" unless f.linked_keg.symlink? || f.keg_only? | 
					
						
							| 
									
										
										
										
											2014-10-31 18:33:39 -05:00
										 |  |  |           opoo msg | 
					
						
							| 
									
										
										
										
											2015-10-09 19:03:20 +08:00
										 |  |  |         elsif f.oldname && (dir = HOMEBREW_CELLAR/f.oldname).directory? && !dir.subdirs.empty? \ | 
					
						
							| 
									
										
										
										
											2015-08-25 15:38:25 +02:00
										 |  |  |             && f.tap == Tab.for_keg(dir.subdirs.first).tap && !ARGV.force? | 
					
						
							|  |  |  |           # Check if the formula we try to install is the same as installed | 
					
						
							|  |  |  |           # but not migrated one. If --force passed then install anyway. | 
					
						
							|  |  |  |           opoo "#{f.oldname} already installed, it's just not migrated" | 
					
						
							|  |  |  |           puts "You can migrate formula with `brew migrate #{f}`" | 
					
						
							|  |  |  |           puts "Or you can force install it with `brew install #{f} --force`" | 
					
						
							| 
									
										
										
										
											2014-10-31 18:33:39 -05:00
										 |  |  |         else | 
					
						
							|  |  |  |           formulae << f | 
					
						
							|  |  |  |         end | 
					
						
							| 
									
										
										
										
											2014-06-16 13:38:14 -05:00
										 |  |  |       end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-08-21 15:46:57 +01:00
										 |  |  |       perform_preinstall_checks | 
					
						
							| 
									
										
										
										
											2014-03-15 10:40:18 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-10-31 18:33:39 -05:00
										 |  |  |       formulae.each { |f| install_formula(f) } | 
					
						
							| 
									
										
										
										
											2016-04-16 21:07:07 +02:00
										 |  |  |     rescue FormulaClassUnavailableError => e | 
					
						
							|  |  |  |       # Need to rescue before `FormulaUnavailableError` (superclass of this) | 
					
						
							|  |  |  |       # is handled, as searching for a formula doesn't make sense here (the | 
					
						
							|  |  |  |       # formula was found, but there's a problem with its implementation). | 
					
						
							|  |  |  |       ofail e.message | 
					
						
							| 
									
										
										
										
											2013-10-30 12:33:20 -07:00
										 |  |  |     rescue FormulaUnavailableError => e | 
					
						
							| 
									
										
										
										
											2015-03-11 16:36:36 +08:00
										 |  |  |       if (blacklist = blacklisted?(e.name)) | 
					
						
							|  |  |  |         ofail "#{e.message}\n#{blacklist}" | 
					
						
							|  |  |  |       else | 
					
						
							|  |  |  |         ofail e.message | 
					
						
							|  |  |  |         query = query_regexp(e.name) | 
					
						
							| 
									
										
										
										
											2015-10-13 11:56:39 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  |         ohai "Searching for similarly named formulae..." | 
					
						
							|  |  |  |         formulae_search_results = search_formulae(query) | 
					
						
							|  |  |  |         case formulae_search_results.length | 
					
						
							|  |  |  |         when 0
 | 
					
						
							|  |  |  |           ofail "No similarly named formulae found." | 
					
						
							|  |  |  |         when 1
 | 
					
						
							|  |  |  |           puts "This similarly named formula was found:" | 
					
						
							|  |  |  |           puts_columns(formulae_search_results) | 
					
						
							|  |  |  |           puts "To install it, run:\n  brew install #{formulae_search_results.first}" | 
					
						
							|  |  |  |         else | 
					
						
							|  |  |  |           puts "These similarly named formulae were found:" | 
					
						
							|  |  |  |           puts_columns(formulae_search_results) | 
					
						
							|  |  |  |           puts "To install one of them, run (for example):\n  brew install #{formulae_search_results.first}" | 
					
						
							|  |  |  |         end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-07-17 11:31:54 -07:00
										 |  |  |         ohai "Searching taps..." | 
					
						
							| 
									
										
										
										
											2015-10-13 11:56:39 -04:00
										 |  |  |         taps_search_results = search_taps(query) | 
					
						
							|  |  |  |         case taps_search_results.length | 
					
						
							|  |  |  |         when 0
 | 
					
						
							|  |  |  |           ofail "No formulae found in taps." | 
					
						
							|  |  |  |         when 1
 | 
					
						
							|  |  |  |           puts "This formula was found in a tap:" | 
					
						
							|  |  |  |           puts_columns(taps_search_results) | 
					
						
							|  |  |  |           puts "To install it, run:\n  brew install #{taps_search_results.first}" | 
					
						
							|  |  |  |         else | 
					
						
							|  |  |  |           puts "These formulae were found in taps:" | 
					
						
							|  |  |  |           puts_columns(taps_search_results) | 
					
						
							|  |  |  |           puts "To install one of them, run (for example):\n  brew install #{taps_search_results.first}" | 
					
						
							|  |  |  |         end | 
					
						
							| 
									
										
										
										
											2015-05-15 12:06:15 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  |         # If they haven't updated in 48 hours (172800 seconds), that | 
					
						
							|  |  |  |         # might explain the error | 
					
						
							| 
									
										
										
										
											2015-07-11 14:35:37 +01:00
										 |  |  |         master = HOMEBREW_REPOSITORY/".git/refs/heads/master" | 
					
						
							| 
									
										
										
										
											2015-07-11 21:16:00 +01:00
										 |  |  |         if master.exist? && (Time.now.to_i - File.mtime(master).to_i) > 172800
 | 
					
						
							| 
									
										
										
										
											2015-05-15 12:06:15 -07:00
										 |  |  |           ohai "You haven't updated Homebrew in a while." | 
					
						
							|  |  |  |           puts <<-EOS.undent
 | 
					
						
							| 
									
										
										
										
											2015-07-11 14:35:37 +01:00
										 |  |  |             A formula for #{e.name} might have been added recently. | 
					
						
							|  |  |  |             Run `brew update` to get the latest Homebrew updates! | 
					
						
							| 
									
										
										
										
											2015-05-15 12:06:15 -07:00
										 |  |  |           EOS | 
					
						
							|  |  |  |         end | 
					
						
							| 
									
										
										
										
											2015-03-11 16:36:36 +08:00
										 |  |  |       end | 
					
						
							| 
									
										
										
										
											2013-09-05 12:24:21 -07:00
										 |  |  |     end | 
					
						
							| 
									
										
										
										
											2010-09-11 20:22:54 +01:00
										 |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-11-09 12:57:41 +00:00
										 |  |  |   def check_ppc | 
					
						
							| 
									
										
										
										
											2015-08-03 13:09:07 +01:00
										 |  |  |     case Hardware::CPU.type | 
					
						
							|  |  |  |     when :ppc, :dunno | 
					
						
							| 
									
										
										
										
											2010-11-09 13:00:33 +00:00
										 |  |  |       abort <<-EOS.undent
 | 
					
						
							|  |  |  |         Sorry, Homebrew does not support your computer's CPU architecture. | 
					
						
							| 
									
										
										
										
											2012-12-27 21:54:54 -04:00
										 |  |  |         For PPC support, see: https://github.com/mistydemeo/tigerbrew | 
					
						
							| 
									
										
										
										
											2015-08-03 13:09:07 +01:00
										 |  |  |       EOS | 
					
						
							| 
									
										
										
										
											2010-11-09 13:00:33 +00:00
										 |  |  |     end | 
					
						
							| 
									
										
										
										
											2010-11-09 12:57:41 +00:00
										 |  |  |   end | 
					
						
							| 
									
										
										
										
											2010-09-11 20:22:54 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-11-09 12:57:41 +00:00
										 |  |  |   def check_writable_install_location | 
					
						
							| 
									
										
										
										
											2015-08-03 13:09:07 +01:00
										 |  |  |     raise "Cannot write to #{HOMEBREW_CELLAR}" if HOMEBREW_CELLAR.exist? && !HOMEBREW_CELLAR.writable_real? | 
					
						
							|  |  |  |     raise "Cannot write to #{HOMEBREW_PREFIX}" unless HOMEBREW_PREFIX.writable_real? || HOMEBREW_PREFIX.to_s == "/usr/local" | 
					
						
							| 
									
										
										
										
											2010-11-09 12:57:41 +00:00
										 |  |  |   end | 
					
						
							| 
									
										
										
										
											2010-09-11 20:22:54 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-03-19 11:26:39 -05:00
										 |  |  |   def check_xcode | 
					
						
							| 
									
										
										
										
											2016-01-04 23:14:58 +01:00
										 |  |  |     checks = Diagnostic::Checks.new | 
					
						
							| 
									
										
										
										
											2014-05-12 14:46:50 -05:00
										 |  |  |     %w[
 | 
					
						
							| 
									
										
										
										
											2015-06-16 20:02:10 -04:00
										 |  |  |       check_for_unsupported_osx | 
					
						
							| 
									
										
										
										
											2015-06-29 14:09:57 -04:00
										 |  |  |       check_for_bad_install_name_tool | 
					
						
							| 
									
										
										
										
											2014-05-12 14:46:50 -05:00
										 |  |  |       check_for_installed_developer_tools | 
					
						
							|  |  |  |       check_xcode_license_approved | 
					
						
							|  |  |  |       check_for_osx_gcc_installer | 
					
						
							|  |  |  |     ].each do |check| | 
					
						
							| 
									
										
										
										
											2012-08-31 10:20:20 -04:00
										 |  |  |       out = checks.send(check) | 
					
						
							|  |  |  |       opoo out unless out.nil? | 
					
						
							|  |  |  |     end | 
					
						
							| 
									
										
										
										
											2010-09-11 20:22:54 +01:00
										 |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-11-09 12:57:41 +00:00
										 |  |  |   def check_macports | 
					
						
							| 
									
										
										
										
											2012-12-17 17:05:53 -06:00
										 |  |  |     unless MacOS.macports_or_fink.empty? | 
					
						
							| 
									
										
										
										
											2011-09-01 10:14:26 -07:00
										 |  |  |       opoo "It appears you have MacPorts or Fink installed." | 
					
						
							| 
									
										
										
										
											2010-11-09 12:57:41 +00:00
										 |  |  |       puts "Software installed with other package managers causes known problems for" | 
					
						
							| 
									
										
										
										
											2011-09-01 10:14:26 -07:00
										 |  |  |       puts "Homebrew. If a formula fails to build, uninstall MacPorts/Fink and try again." | 
					
						
							| 
									
										
										
										
											2010-11-09 12:57:41 +00:00
										 |  |  |     end | 
					
						
							| 
									
										
										
										
											2010-09-11 20:22:54 +01:00
										 |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-09-15 10:57:03 +01:00
										 |  |  |   def check_cellar | 
					
						
							| 
									
										
										
										
											2015-08-03 13:09:07 +01:00
										 |  |  |     FileUtils.mkdir_p HOMEBREW_CELLAR unless File.exist? HOMEBREW_CELLAR | 
					
						
							| 
									
										
										
										
											2011-09-15 10:57:03 +01:00
										 |  |  |   rescue | 
					
						
							|  |  |  |     raise <<-EOS.undent
 | 
					
						
							|  |  |  |       Could not create #{HOMEBREW_CELLAR} | 
					
						
							|  |  |  |       Check you have permission to write to #{HOMEBREW_CELLAR.parent} | 
					
						
							|  |  |  |     EOS | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-08-23 23:30:52 +01:00
										 |  |  |   def perform_preinstall_checks | 
					
						
							| 
									
										
										
										
											2010-11-09 12:57:41 +00:00
										 |  |  |     check_ppc | 
					
						
							|  |  |  |     check_writable_install_location | 
					
						
							| 
									
										
										
										
											2015-08-16 23:41:28 -04:00
										 |  |  |     check_xcode if MacOS.has_apple_developer_tools? | 
					
						
							| 
									
										
										
										
											2011-09-15 10:57:03 +01:00
										 |  |  |     check_cellar | 
					
						
							| 
									
										
										
										
											2011-08-23 23:30:52 +01:00
										 |  |  |   end | 
					
						
							| 
									
										
										
										
											2010-11-09 12:57:41 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-08-03 13:09:07 +01:00
										 |  |  |   def install_formula(f) | 
					
						
							| 
									
										
										
										
											2014-10-19 13:54:00 +01:00
										 |  |  |     f.print_tap_action | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-01-08 19:54:32 -06:00
										 |  |  |     fi = FormulaInstaller.new(f) | 
					
						
							| 
									
										
										
										
											2014-03-13 10:11:00 -05:00
										 |  |  |     fi.options             = f.build.used_options | 
					
						
							| 
									
										
										
										
											2014-08-30 15:02:38 -05:00
										 |  |  |     fi.ignore_deps         = ARGV.ignore_deps? | 
					
						
							| 
									
										
										
										
											2014-03-13 10:11:00 -05:00
										 |  |  |     fi.only_deps           = ARGV.only_deps? | 
					
						
							|  |  |  |     fi.build_bottle        = ARGV.build_bottle? | 
					
						
							| 
									
										
										
										
											2016-05-06 12:02:13 -07:00
										 |  |  |     fi.build_from_source   = ARGV.build_from_source? || ARGV.build_all_from_source? | 
					
						
							| 
									
										
										
										
											2014-03-13 10:11:00 -05:00
										 |  |  |     fi.force_bottle        = ARGV.force_bottle? | 
					
						
							|  |  |  |     fi.interactive         = ARGV.interactive? | 
					
						
							| 
									
										
										
										
											2014-11-03 21:34:41 -06:00
										 |  |  |     fi.git                 = ARGV.git? | 
					
						
							| 
									
										
										
										
											2014-03-13 10:11:00 -05:00
										 |  |  |     fi.verbose             = ARGV.verbose? | 
					
						
							| 
									
										
										
										
											2014-11-03 21:36:01 -06:00
										 |  |  |     fi.quieter             = ARGV.quieter? | 
					
						
							| 
									
										
										
										
											2014-03-13 10:11:00 -05:00
										 |  |  |     fi.debug               = ARGV.debug? | 
					
						
							| 
									
										
										
										
											2014-03-04 14:06:25 -06:00
										 |  |  |     fi.prelude | 
					
						
							| 
									
										
										
										
											2013-01-08 19:54:32 -06:00
										 |  |  |     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. | 
					
						
							| 
									
										
										
										
											2014-03-15 10:40:18 -05:00
										 |  |  |   rescue CannotInstallFormulaError => e | 
					
						
							|  |  |  |     ofail e.message | 
					
						
							| 
									
										
										
										
											2014-10-31 20:54:09 -05:00
										 |  |  |   rescue BuildError | 
					
						
							|  |  |  |     check_macports | 
					
						
							|  |  |  |     raise | 
					
						
							| 
									
										
										
										
											2013-01-08 19:54:32 -06:00
										 |  |  |   end | 
					
						
							| 
									
										
										
										
											2010-09-11 20:22:54 +01:00
										 |  |  | end |