diff options
| author | Max Howell | 2009-09-23 16:44:10 +0100 |
|---|---|---|
| committer | Max Howell | 2009-09-24 18:26:24 +0100 |
| commit | 51dcb8c9e754223cc7fd1c605b160f23b996fe81 (patch) | |
| tree | 3219c6a8aba39c8d10febf37e3269c80026e17a7 /Library | |
| parent | 0836244a2318a24253697e811a5e489b0ed22bb2 (diff) | |
| download | homebrew-51dcb8c9e754223cc7fd1c605b160f23b996fe81.tar.bz2 | |
Use full paths to all system utilities
Otherwise you run the risk of not running the exact version / make of the utility you planned.
Fixes #48
Really we need to do this formula too, so I guess a make and cmake function are on the way…
Diffstat (limited to 'Library')
| -rw-r--r-- | Library/Homebrew/brew.h.rb | 2 | ||||
| -rw-r--r-- | Library/Homebrew/brewkit.rb | 2 | ||||
| -rw-r--r-- | Library/Homebrew/download_strategy.rb | 8 | ||||
| -rw-r--r-- | Library/Homebrew/formula.rb | 8 | ||||
| -rwxr-xr-x | Library/Homebrew/unittest.rb | 2 | ||||
| -rw-r--r-- | Library/Homebrew/utils.rb | 24 |
6 files changed, 23 insertions, 23 deletions
diff --git a/Library/Homebrew/brew.h.rb b/Library/Homebrew/brew.h.rb index 7a5e55fea..532e5b611 100644 --- a/Library/Homebrew/brew.h.rb +++ b/Library/Homebrew/brew.h.rb @@ -95,7 +95,7 @@ def info name require 'formula' user='' - user=`git config --global github.user`.chomp if system "which git > /dev/null" + user=`git config --global github.user`.chomp if system "/usr/bin/which -s git" user='mxcl' if user.empty? # FIXME it would be nice if we didn't assume the default branch is master history="http://github.com/#{user}/homebrew/commits/master/Library/Formula/#{Formula.path(name).basename}" diff --git a/Library/Homebrew/brewkit.rb b/Library/Homebrew/brewkit.rb index 132bda851..91ea9fa64 100644 --- a/Library/Homebrew/brewkit.rb +++ b/Library/Homebrew/brewkit.rb @@ -187,5 +187,5 @@ def inreplace(path, before, after) after.gsub! "$", "\\$" # FIXME use proper Ruby for teh exceptions! - safe_system "perl", "-pi", "-e", "s/#{before}/#{after}/g", path + safe_system "/usr/bin/perl", "-pi", "-e", "s/#{before}/#{after}/g", path end diff --git a/Library/Homebrew/download_strategy.rb b/Library/Homebrew/download_strategy.rb index 0c89c1f2b..58e5b197b 100644 --- a/Library/Homebrew/download_strategy.rb +++ b/Library/Homebrew/download_strategy.rb @@ -51,11 +51,11 @@ class HttpDownloadStrategy <AbstractDownloadStrategy def stage case `file -b #{@dl}` when /^Zip archive data/ - safe_system 'unzip', '-qq', @dl + safe_system '/usr/bin/unzip', '-qq', @dl chdir when /^(gzip|bzip2) compressed data/ # TODO do file -z now to see if it is in fact a tar - safe_system 'tar', 'xf', @dl + safe_system '/usr/bin/tar', 'xf', @dl chdir else # we are assuming it is not an archive, use original filename @@ -94,7 +94,7 @@ class SubversionDownloadStrategy <AbstractDownloadStrategy ohai "Checking out #{@url}" @co=HOMEBREW_CACHE+@unique_token unless @co.exist? - safe_system 'svn', 'checkout', @url, @co + safe_system '/usr/bin/svn', 'checkout', @url, @co else # TODO svn up? puts "Repository already checked out" @@ -102,7 +102,7 @@ class SubversionDownloadStrategy <AbstractDownloadStrategy end def stage # Force the export, since the target directory will already exist - safe_system 'svn', 'export', '--force', @co, Dir.pwd + safe_system '/usr/bin/svn', 'export', '--force', @co, Dir.pwd end end diff --git a/Library/Homebrew/formula.rb b/Library/Homebrew/formula.rb index 099f2e6bb..ed65e5426 100644 --- a/Library/Homebrew/formula.rb +++ b/Library/Homebrew/formula.rb @@ -217,7 +217,7 @@ private # I used /tmp rather than mktemp -td because that generates a directory # name with exotic characters like + in it, and these break badly written # scripts that don't escape strings before trying to regexp them :( - tmp=Pathname.new `mktemp -d /tmp/homebrew-#{name}-#{version}-XXXX`.strip + tmp=Pathname.new `/usr/bin/mktemp -d /tmp/homebrew-#{name}-#{version}-XXXX`.strip raise "Couldn't create build sandbox" if not tmp.directory? or $? != 0 begin wd=Dir.pwd @@ -311,12 +311,12 @@ private patch_list.each do |p| case p[:compression] - when :gzip then safe_system "gunzip", p[:filename]+'.gz' - when :bzip2 then safe_system "bunzip2", p[:filename]+'.bz2' + when :gzip then safe_system "/usr/bin/gunzip", p[:filename]+'.gz' + when :bzip2 then safe_system "/usr/bin/bunzip2", p[:filename]+'.bz2' end # -f means it doesn't prompt the user if there are errors, if just # exits with non-zero status - safe_system 'patch', '-f', *(p[:args]) + safe_system '/usr/bin/patch', '-f', *(p[:args]) end end diff --git a/Library/Homebrew/unittest.rb b/Library/Homebrew/unittest.rb index 41ebfb173..6b24d3095 100755 --- a/Library/Homebrew/unittest.rb +++ b/Library/Homebrew/unittest.rb @@ -56,7 +56,7 @@ end class TestZip <Formula def initialize zip=HOMEBREW_CACHE.parent+'test-0.1.zip' - Kernel.system 'zip', '-0', zip, ABS__FILE__ + Kernel.system '/usr/bin/zip', '-0', zip, ABS__FILE__ @url="file://#{zip}" super 'testzip' end diff --git a/Library/Homebrew/utils.rb b/Library/Homebrew/utils.rb index 3efeb99a6..208a01e8e 100644 --- a/Library/Homebrew/utils.rb +++ b/Library/Homebrew/utils.rb @@ -23,7 +23,7 @@ # args are additional inputs to puts until a nil arg is encountered def ohai title, *sput - title = title[0, `tput cols`.strip.to_i-4] unless ARGV.verbose? + title = title[0, `/usr/bin/tput cols`.strip.to_i-4] unless ARGV.verbose? puts "\033[0;34m==>\033[0;0;1m #{title}\033[0;0m" puts *sput unless sput.empty? end @@ -59,12 +59,12 @@ end # Kernel.system but with exceptions def safe_system cmd, *args puts "#{cmd} #{args*' '}" if ARGV.verbose? - exec_success=Kernel.system cmd, *args + exec_success = Kernel.system cmd, *args # some tools, eg. tar seem to confuse ruby and it doesn't propogate the # CTRL-C interrupt to us too, so execution continues, but the exit code os # still 2 so we raise our own interrupt raise Interrupt, cmd if $?.termsig == 2 - unless exec_success and $?.success? + unless exec_success puts "Exit code: #{$?}" raise ExecutionError.new(cmd, args) end @@ -75,23 +75,23 @@ def curl *args end def puts_columns items, cols = 4 - items = items.join("\n") if items.is_a?(Array) - items.concat("\n") unless items.empty? if $stdout.tty? - width=`stty size`.chomp.split(" ").last - IO.popen("pr -#{cols} -t", "w"){|io| io.write(items) } + items = items.join("\n") if items.is_a?(Array) + items.concat("\n") unless items.empty? + width=`/bin/stty size`.chomp.split(" ").last + IO.popen("/usr/bin/pr -#{cols} -t", "w"){|io| io.write(items) } else - items.each { |i| $stdout.write(i) } + puts *items end end def exec_editor *args editor=ENV['EDITOR'] if editor.nil? - if system "which -s mate" and $?.success? + if system "/usr/bin/which -s mate" editor='mate' else - editor='vim' + editor='/usr/bin/vim' end end # we split the editor because especially on mac "mate -w" is common @@ -103,9 +103,9 @@ end # provide an absolute path to a command or this function will search the PATH def arch_for_command cmd archs = [] - cmd = `which #{cmd}` if not Pathname.new(cmd).absolute? + cmd = `/usr/bin/which #{cmd}` if not Pathname.new(cmd).absolute? - IO.popen("file #{cmd}").readlines.each do |line| + IO.popen("/usr/bin/file #{cmd}").readlines.each do |line| case line when /Mach-O executable ppc/ archs << :ppc7400 |
