homebrew-core/Formula/shocco.rb
Peter Aronoff 623f1db645 shocco: move hard markdown dep to Requirement
schocco requires a `markdown` command. The previous version of the formula
checked for the markdown formula. However, there's an edge case involved.
The discount formula installs a command `markdown` which can also satisfy
shocco's requirement. (And I would add that discount's implementation of
the `markdown` command is far superior to markdown's, though I grant that's
debatable.)

This update checks for any `markdown`-providing install, and if one is not
found tells the user what options are available.

I think this is better than just installing the markdown formula. First, if
discount is already installed, then when `brew` tries to install markdown,
the linking stage will fail. Although the shocco install as a whole will go
through, the failure message about linking markdown is likely to confuse
the user.  Also, if discount is already installed, that problably means the
user doesn't want the markdown formula. Finally, this way of handling
things is more easily extended if other formulas become available which
provide a valid `markdown` command.

Closes Homebrew/homebrew#16740.

Signed-off-by: Misty De Meo <mistydemeo@gmail.com>
2012-12-27 20:26:00 -04:00

57 lines
1.4 KiB
Ruby

require 'formula'
# Include a private copy of this Python app
# so we don't have to worry about clashing dependencies.
class Pygments < Formula
homepage 'http://pygments.org/'
url 'http://pypi.python.org/packages/source/P/Pygments/Pygments-1.5.tar.gz'
sha1 '4fbd937fd5cebc79fa4b26d4cce0868c4eec5ec5'
end
class MarkdownProvider < Requirement
def message; <<-EOS.undent
shocco requires a `markdown` command.
You can satisfy this requirement with either of two formulae:
brew install markdown
brew install discount
Please install one and try again.
EOS
end
def satisfied?
which 'markdown'
end
def fatal?
true
end
end
class Shocco < Formula
homepage 'http://rtomayko.github.com/shocco/'
url 'https://github.com/rtomayko/shocco/tarball/a1ee000613946335f54a8f236ee9fe6f7f22bcb8'
sha1 '8feb66dad3c957fabdfa368e710dfb2a078a732f'
depends_on MarkdownProvider.new
def install
Pygments.new.brew { libexec.install 'pygmentize','pygments' }
# Brew along with Pygments
system "./configure", "PYGMENTIZE=#{libexec}/pygmentize", "--prefix=#{prefix}"
# Shocco's Makefile does not combine the make and make install steps.
system "make"
system "make install"
end
def caveats
<<-EOS.undent
You may also want to install browser:
brew install browser
shocco `which shocco` | browser
EOS
end
end