aboutsummaryrefslogtreecommitdiffstats
path: root/Library
diff options
context:
space:
mode:
authorMax Howell2009-09-23 16:44:10 +0100
committerMax Howell2009-09-24 18:26:24 +0100
commit51dcb8c9e754223cc7fd1c605b160f23b996fe81 (patch)
tree3219c6a8aba39c8d10febf37e3269c80026e17a7 /Library
parent0836244a2318a24253697e811a5e489b0ed22bb2 (diff)
downloadhomebrew-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.rb2
-rw-r--r--Library/Homebrew/brewkit.rb2
-rw-r--r--Library/Homebrew/download_strategy.rb8
-rw-r--r--Library/Homebrew/formula.rb8
-rwxr-xr-xLibrary/Homebrew/unittest.rb2
-rw-r--r--Library/Homebrew/utils.rb24
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