diff options
Diffstat (limited to 'Library')
| -rw-r--r-- | Library/Homebrew/download_strategy.rb | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/Library/Homebrew/download_strategy.rb b/Library/Homebrew/download_strategy.rb index 68a91d0a4..99897ff84 100644 --- a/Library/Homebrew/download_strategy.rb +++ b/Library/Homebrew/download_strategy.rb @@ -458,19 +458,27 @@ class MercurialDownloadStrategy < AbstractDownloadStrategy def cached_location; @clone; end + def hgpath + @path ||= if which "hg" + 'hg' + else + "#{HOMEBREW_PREFIX}/bin/hg" + end + end + def fetch - raise "You must install Mercurial: brew install mercurial" unless which "hg" + raise "You must: brew install hg" unless File.file?(hgpath) ohai "Cloning #{@url}" unless @clone.exist? url=@url.sub(%r[^hg://], '') - safe_system 'hg', 'clone', url, @clone + safe_system hgpath, 'clone', url, @clone else puts "Updating #{@clone}" Dir.chdir(@clone) do - safe_system 'hg', 'pull' - safe_system 'hg', 'update' + safe_system hgpath, 'pull' + safe_system hgpath, 'update' end end end @@ -480,9 +488,9 @@ class MercurialDownloadStrategy < AbstractDownloadStrategy Dir.chdir @clone do if @spec and @ref ohai "Checking out #{@spec} #{@ref}" - safe_system 'hg', 'archive', '--subrepos', '-y', '-r', @ref, '-t', 'files', dst + safe_system hgpath, 'archive', '--subrepos', '-y', '-r', @ref, '-t', 'files', dst else - safe_system 'hg', 'archive', '--subrepos', '-y', '-t', 'files', dst + safe_system hgpath, 'archive', '--subrepos', '-y', '-t', 'files', dst end end end |
