homebrew-core/Formula/mercurial.rb

70 lines
2.2 KiB
Ruby
Raw Normal View History

2011-11-15 17:03:12 +00:00
require 'formula'
class Mercurial < Formula
homepage 'http://mercurial.selenic.com/'
url 'http://mercurial.selenic.com/release/mercurial-2.2.3.tar.gz'
sha1 'b754700c545c17f68e1ab36c942141d90c9b9b46'
head 'http://selenic.com/repo/hg', :using => :hg
depends_on 'docutils' => :python if ARGV.build_head? or ARGV.include? "--doc"
def options
2012-02-18 17:29:34 +00:00
[["--doc", "build the documentation. Depends on 'docutils' module."]]
end
2011-11-15 17:03:12 +00:00
def install
# Don't add compiler specific flags so we can build against
# System-provided Python.
ENV.minimal_optimization
# install the completion script
(prefix + 'etc/bash_completion.d').install 'contrib/bash_completion' => 'hg-completion.bash'
2011-11-15 17:03:12 +00:00
# Force the binary install path to the Cellar
inreplace "Makefile",
"setup.py $(PURE) install",
"setup.py $(PURE) install --install-scripts=\"#{libexec}\""
# Make Mercurial into the Cellar.
# The documentation must be built when using HEAD
system "make", "doc" if ARGV.build_head? or ARGV.include? "--doc"
2011-11-15 17:03:12 +00:00
system "make", "PREFIX=#{prefix}", "build"
system "make", "PREFIX=#{prefix}", "install-bin"
2011-11-15 17:06:08 +00:00
2011-11-15 17:03:12 +00:00
# Now we have lib/python2.x/site-packages/ with Mercurial
# libs in them. We want to move these out of site-packages into
# a self-contained folder. Let's choose libexec.
libexec.install Dir["#{lib}/python*/site-packages/*"]
2011-11-15 17:06:08 +00:00
# Symlink the hg binary into bin
2012-02-12 22:46:07 +00:00
bin.install_symlink libexec+'hg'
2011-11-15 17:03:12 +00:00
# Remove the hard-coded python invocation from hg
inreplace bin+'hg', %r[#!/.*/python(/.*)?], '#!/usr/bin/env python'
2011-11-15 17:03:12 +00:00
# Install some contribs
bin.install 'contrib/hgk'
# Install man pages
man1.install 'doc/hg.1'
2012-02-12 22:46:07 +00:00
man5.install 'doc/hgignore.5', 'doc/hgrc.5'
2011-11-15 17:03:12 +00:00
end
def caveats
if ARGV.build_head? then <<-EOS.undent
Mercurial is required to fetch its own repository, so there are now two
installations of mercurial on this machine. If the previous installation
was done via Homebrew, the old version may need to be cleaned up and new
version linked:
brew cleanup mercurial && brew link mercurial
EOS
end
end
def test
system "#{bin}/hg", "debuginstall"
end
2011-11-15 17:03:12 +00:00
end