diff --git a/Library/Homebrew/download_strategy.rb b/Library/Homebrew/download_strategy.rb index 68a91d0a48..99897ff846 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