From 7344149f52dacb0aee08344dde2676563edcce7a Mon Sep 17 00:00:00 2001 From: Mike McQuaid Date: Tue, 5 Feb 2013 20:18:24 -0800 Subject: brew: move to Library/brew.rb --- Library/brew.rb | 129 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ bin/brew | 129 -------------------------------------------------------- 2 files changed, 129 insertions(+), 129 deletions(-) create mode 100755 Library/brew.rb delete mode 100755 bin/brew diff --git a/Library/brew.rb b/Library/brew.rb new file mode 100755 index 000000000..1ade4c30b --- /dev/null +++ b/Library/brew.rb @@ -0,0 +1,129 @@ +#!/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby -W0 +# -*- coding: utf-8 -*- + +std_trap = trap("INT") { exit! 130 } # no backtrace thanks + +HOMEBREW_BREW_FILE = ENV['HOMEBREW_BREW_FILE'] = File.expand_path(__FILE__) + +if ARGV == %w{--prefix} + puts File.dirname(File.dirname(HOMEBREW_BREW_FILE)) + exit 0 +end + +require 'pathname' +HOMEBREW_LIBRARY_PATH = Pathname.new(__FILE__).realpath.dirname.parent.join("Library/Homebrew").to_s +$:.unshift(HOMEBREW_LIBRARY_PATH + '/vendor') +$:.unshift(HOMEBREW_LIBRARY_PATH) +require 'global' + +case ARGV.first when '-h', '--help', '--usage', '-?', 'help', nil + require 'cmd/help' + puts Homebrew.help_s + exit ARGV.first ? 0 : 1 +when '--version' + puts HOMEBREW_VERSION + exit 0 +when '-v' + puts "Homebrew #{HOMEBREW_VERSION}" + # Shift the -v to the end of the parameter list + ARGV << ARGV.shift + # If no other arguments, just quit here. + exit 0 if ARGV.length == 1 +end + +case HOMEBREW_PREFIX.to_s when '/', '/usr' + # it may work, but I only see pain this route and don't want to support it + abort "Cowardly refusing to continue at this prefix: #{HOMEBREW_PREFIX}" +end +if MACOS and MACOS_VERSION < 10.5 + abort <<-EOABORT.undent + Homebrew requires Leopard or higher. For Tiger support, see: + https://github.com/mistydemeo/tigerbrew + EOABORT +end + +# Many Pathname operations use getwd when they shouldn't, and then throw +# odd exceptions. Reduce our support burden by showing a user-friendly error. +Dir.getwd rescue abort "The current working directory doesn't exist, cannot proceed." + + +def require? path + require path.to_s.chomp +rescue LoadError => e + # HACK :( because we should raise on syntax errors but + # not if the file doesn't exist. TODO make robust! + raise unless e.to_s.include? path +end + +begin + trap("INT", std_trap) # restore default CTRL-C handler + + aliases = {'ls' => :list, + 'homepage' => :home, + '-S' => :search, + 'up' => :update, + 'ln' => :link, + 'instal' => :install, # gem does the same + 'rm' => :uninstall, + 'remove' => :uninstall, + 'configure' => :diy, + 'abv' => :info, + 'dr' => :doctor, + '--repo' => '--repository', + 'environment' => '--env' # same as gem + } + + cmd = ARGV.shift + cmd = aliases[cmd] if aliases[cmd] + + if cmd == '-c1' + cmd = '--config' + ARGV.unshift('-1') + end + + # Add example external commands to PATH before checking. + ENV['PATH'] += ":#{HOMEBREW_REPOSITORY}/Library/Contributions/cmds" + if which "brew-#{cmd}" + %w[CACHE CELLAR LIBRARY_PATH PREFIX REPOSITORY].each do |e| + ENV["HOMEBREW_#{e}"] = Object.const_get "HOMEBREW_#{e}" + end + exec "brew-#{cmd}", *ARGV + elsif require? `/usr/bin/which brew-#{cmd}.rb` + exit 0 + elsif require? HOMEBREW_REPOSITORY/"Library/Homebrew/cmd"/cmd + Homebrew.send cmd.to_s.gsub('-', '_').downcase + else + onoe "Unknown command: #{cmd}" + exit 1 + end + +rescue FormulaUnspecifiedError + abort "This command requires a formula argument" +rescue KegUnspecifiedError + abort "This command requires a keg argument" +rescue UsageError + onoe "Invalid usage" + abort ARGV.usage +rescue SystemExit + puts "Kernel.exit" if ARGV.verbose? + raise +rescue Interrupt => e + puts # seemingly a newline is typical + exit 130 +rescue BuildError => e + e.dump + exit 1 +rescue RuntimeError, SystemCallError => e + raise if e.message.empty? + onoe e + puts e.backtrace if ARGV.debug? + exit 1 +rescue Exception => e + onoe e + puts "#{Tty.white}Please report this bug:" + puts " #{Tty.em}#{ISSUES_URL}#{Tty.reset}" + puts e.backtrace + exit 1 +else + exit 1 if Homebrew.failed? +end diff --git a/bin/brew b/bin/brew deleted file mode 100755 index 1ade4c30b..000000000 --- a/bin/brew +++ /dev/null @@ -1,129 +0,0 @@ -#!/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby -W0 -# -*- coding: utf-8 -*- - -std_trap = trap("INT") { exit! 130 } # no backtrace thanks - -HOMEBREW_BREW_FILE = ENV['HOMEBREW_BREW_FILE'] = File.expand_path(__FILE__) - -if ARGV == %w{--prefix} - puts File.dirname(File.dirname(HOMEBREW_BREW_FILE)) - exit 0 -end - -require 'pathname' -HOMEBREW_LIBRARY_PATH = Pathname.new(__FILE__).realpath.dirname.parent.join("Library/Homebrew").to_s -$:.unshift(HOMEBREW_LIBRARY_PATH + '/vendor') -$:.unshift(HOMEBREW_LIBRARY_PATH) -require 'global' - -case ARGV.first when '-h', '--help', '--usage', '-?', 'help', nil - require 'cmd/help' - puts Homebrew.help_s - exit ARGV.first ? 0 : 1 -when '--version' - puts HOMEBREW_VERSION - exit 0 -when '-v' - puts "Homebrew #{HOMEBREW_VERSION}" - # Shift the -v to the end of the parameter list - ARGV << ARGV.shift - # If no other arguments, just quit here. - exit 0 if ARGV.length == 1 -end - -case HOMEBREW_PREFIX.to_s when '/', '/usr' - # it may work, but I only see pain this route and don't want to support it - abort "Cowardly refusing to continue at this prefix: #{HOMEBREW_PREFIX}" -end -if MACOS and MACOS_VERSION < 10.5 - abort <<-EOABORT.undent - Homebrew requires Leopard or higher. For Tiger support, see: - https://github.com/mistydemeo/tigerbrew - EOABORT -end - -# Many Pathname operations use getwd when they shouldn't, and then throw -# odd exceptions. Reduce our support burden by showing a user-friendly error. -Dir.getwd rescue abort "The current working directory doesn't exist, cannot proceed." - - -def require? path - require path.to_s.chomp -rescue LoadError => e - # HACK :( because we should raise on syntax errors but - # not if the file doesn't exist. TODO make robust! - raise unless e.to_s.include? path -end - -begin - trap("INT", std_trap) # restore default CTRL-C handler - - aliases = {'ls' => :list, - 'homepage' => :home, - '-S' => :search, - 'up' => :update, - 'ln' => :link, - 'instal' => :install, # gem does the same - 'rm' => :uninstall, - 'remove' => :uninstall, - 'configure' => :diy, - 'abv' => :info, - 'dr' => :doctor, - '--repo' => '--repository', - 'environment' => '--env' # same as gem - } - - cmd = ARGV.shift - cmd = aliases[cmd] if aliases[cmd] - - if cmd == '-c1' - cmd = '--config' - ARGV.unshift('-1') - end - - # Add example external commands to PATH before checking. - ENV['PATH'] += ":#{HOMEBREW_REPOSITORY}/Library/Contributions/cmds" - if which "brew-#{cmd}" - %w[CACHE CELLAR LIBRARY_PATH PREFIX REPOSITORY].each do |e| - ENV["HOMEBREW_#{e}"] = Object.const_get "HOMEBREW_#{e}" - end - exec "brew-#{cmd}", *ARGV - elsif require? `/usr/bin/which brew-#{cmd}.rb` - exit 0 - elsif require? HOMEBREW_REPOSITORY/"Library/Homebrew/cmd"/cmd - Homebrew.send cmd.to_s.gsub('-', '_').downcase - else - onoe "Unknown command: #{cmd}" - exit 1 - end - -rescue FormulaUnspecifiedError - abort "This command requires a formula argument" -rescue KegUnspecifiedError - abort "This command requires a keg argument" -rescue UsageError - onoe "Invalid usage" - abort ARGV.usage -rescue SystemExit - puts "Kernel.exit" if ARGV.verbose? - raise -rescue Interrupt => e - puts # seemingly a newline is typical - exit 130 -rescue BuildError => e - e.dump - exit 1 -rescue RuntimeError, SystemCallError => e - raise if e.message.empty? - onoe e - puts e.backtrace if ARGV.debug? - exit 1 -rescue Exception => e - onoe e - puts "#{Tty.white}Please report this bug:" - puts " #{Tty.em}#{ISSUES_URL}#{Tty.reset}" - puts e.backtrace - exit 1 -else - exit 1 if Homebrew.failed? -end -- cgit v1.2.3