From 45ba18b4d5df138e7388fa911ce3810620c18a69 Mon Sep 17 00:00:00 2001 From: Max Howell Date: Wed, 24 Aug 2011 13:12:36 +0100 Subject: Rename install.rb to build.rb for clarity and great justice It was just confusing, and since the `brew upgrade` refactor this makes more sense too. Shame it still downloads in there etc. but whatever. Homebrew 2 will fix! --- Library/Homebrew/build.rb | 92 +++++++++++++++++++++++++++++++++++ Library/Homebrew/formula_installer.rb | 2 +- Library/Homebrew/install.rb | 92 ----------------------------------- 3 files changed, 93 insertions(+), 93 deletions(-) create mode 100755 Library/Homebrew/build.rb delete mode 100755 Library/Homebrew/install.rb (limited to 'Library') diff --git a/Library/Homebrew/build.rb b/Library/Homebrew/build.rb new file mode 100755 index 000000000..9844ef401 --- /dev/null +++ b/Library/Homebrew/build.rb @@ -0,0 +1,92 @@ +#!/usr/bin/ruby + +# This script is called by formula_installer as a separate instance. +# Rationale: Formula can use __END__, Formula can change ENV +# Thrown exceptions are propogated back to the parent process over a pipe + +ORIGINAL_PATHS = ENV['PATH'].split(':').map{ |p| File.expand_path p } + +require 'global' + +at_exit do + # the whole of everything must be run in at_exit because the formula has to + # be the run script as __END__ must work for *that* formula. + + begin + raise $! if $! # an exception was already thrown when parsing the formula + + require 'extend/ENV' + require 'hardware' + require 'keg' + + ENV.extend(HomebrewEnvExtension) + ENV.setup_build_environment + # we must do this or tools like pkg-config won't get found by configure scripts etc. + ENV.prepend 'PATH', "#{HOMEBREW_PREFIX}/bin", ':' unless ORIGINAL_PATHS.include? "#{HOMEBREW_PREFIX}/bin" + + install(Formula.factory($0)) + rescue Exception => e + if ENV['HOMEBREW_ERROR_PIPE'] + pipe = IO.new(ENV['HOMEBREW_ERROR_PIPE'].to_i, 'w') + Marshal.dump(e, pipe) + pipe.close + exit! 1 + else + onoe e + puts e.backtrace + exit! 2 + end + end +end + +def install f + f.deps.uniq.each do |dep| + dep = Formula.factory dep + if dep.keg_only? + ENV.prepend 'LDFLAGS', "-L#{dep.lib}" + ENV.prepend 'CPPFLAGS', "-I#{dep.include}" + ENV.prepend 'PATH', "#{dep.bin}", ':' + ENV.prepend 'PKG_CONFIG_PATH', dep.lib+'pkgconfig', ':' + end + end + + f.brew do + if ARGV.flag? '--interactive' + ohai "Entering interactive mode" + puts "Type `exit' to return and finalize the installation" + puts "Install to this prefix: #{f.prefix}" + + if ARGV.flag? '--git' + system "git init" + system "git add -A" + puts "This folder is now a git repo. Make your changes and then use:" + puts " git diff | pbcopy" + puts "to copy the diff to the clipboard." + end + + interactive_shell f + nil + elsif ARGV.include? '--help' + system './configure --help' + exit $? + else + f.prefix.mkpath + f.install + FORMULA_META_FILES.each do |filename| + next if File.directory? filename + target_file = filename + target_file = "#{filename}.txt" if File.exists? "#{filename}.txt" + # Some software symlinks these files (see help2man.rb) + target_file = Pathname.new(target_file).resolved_path + f.prefix.install target_file => filename rescue nil + (f.prefix+file).chmod 0644 rescue nil + end + end + end +rescue Exception + if f.prefix.directory? + f.prefix.rmtree + f.prefix.parent.rmdir_if_possible + end + raise +end diff --git a/Library/Homebrew/formula_installer.rb b/Library/Homebrew/formula_installer.rb index dc145e371..b8cb7d7b0 100644 --- a/Library/Homebrew/formula_installer.rb +++ b/Library/Homebrew/formula_installer.rb @@ -107,7 +107,7 @@ class FormulaInstaller exec '/usr/bin/nice', '/usr/bin/ruby', '-I', Pathname.new(__FILE__).dirname, - '-rinstall', + '-rbuild', '--', f.path, *ARGV.options_only diff --git a/Library/Homebrew/install.rb b/Library/Homebrew/install.rb deleted file mode 100755 index 9844ef401..000000000 --- a/Library/Homebrew/install.rb +++ /dev/null @@ -1,92 +0,0 @@ -#!/usr/bin/ruby - -# This script is called by formula_installer as a separate instance. -# Rationale: Formula can use __END__, Formula can change ENV -# Thrown exceptions are propogated back to the parent process over a pipe - -ORIGINAL_PATHS = ENV['PATH'].split(':').map{ |p| File.expand_path p } - -require 'global' - -at_exit do - # the whole of everything must be run in at_exit because the formula has to - # be the run script as __END__ must work for *that* formula. - - begin - raise $! if $! # an exception was already thrown when parsing the formula - - require 'extend/ENV' - require 'hardware' - require 'keg' - - ENV.extend(HomebrewEnvExtension) - ENV.setup_build_environment - # we must do this or tools like pkg-config won't get found by configure scripts etc. - ENV.prepend 'PATH', "#{HOMEBREW_PREFIX}/bin", ':' unless ORIGINAL_PATHS.include? "#{HOMEBREW_PREFIX}/bin" - - install(Formula.factory($0)) - rescue Exception => e - if ENV['HOMEBREW_ERROR_PIPE'] - pipe = IO.new(ENV['HOMEBREW_ERROR_PIPE'].to_i, 'w') - Marshal.dump(e, pipe) - pipe.close - exit! 1 - else - onoe e - puts e.backtrace - exit! 2 - end - end -end - -def install f - f.deps.uniq.each do |dep| - dep = Formula.factory dep - if dep.keg_only? - ENV.prepend 'LDFLAGS', "-L#{dep.lib}" - ENV.prepend 'CPPFLAGS', "-I#{dep.include}" - ENV.prepend 'PATH', "#{dep.bin}", ':' - ENV.prepend 'PKG_CONFIG_PATH', dep.lib+'pkgconfig', ':' - end - end - - f.brew do - if ARGV.flag? '--interactive' - ohai "Entering interactive mode" - puts "Type `exit' to return and finalize the installation" - puts "Install to this prefix: #{f.prefix}" - - if ARGV.flag? '--git' - system "git init" - system "git add -A" - puts "This folder is now a git repo. Make your changes and then use:" - puts " git diff | pbcopy" - puts "to copy the diff to the clipboard." - end - - interactive_shell f - nil - elsif ARGV.include? '--help' - system './configure --help' - exit $? - else - f.prefix.mkpath - f.install - FORMULA_META_FILES.each do |filename| - next if File.directory? filename - target_file = filename - target_file = "#{filename}.txt" if File.exists? "#{filename}.txt" - # Some software symlinks these files (see help2man.rb) - target_file = Pathname.new(target_file).resolved_path - f.prefix.install target_file => filename rescue nil - (f.prefix+file).chmod 0644 rescue nil - end - end - end -rescue Exception - if f.prefix.directory? - f.prefix.rmtree - f.prefix.parent.rmdir_if_possible - end - raise -end -- cgit v1.2.3