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
  fatal true

  satisfy { which 'markdown' }

  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
end

class Shocco < Formula
  homepage 'http://rtomayko.github.com/shocco/'
  url 'https://github.com/rtomayko/shocco/tarball/a1ee000613946335f54a8f236ee9fe6f7f22bcb8'
  sha1 '8feb66dad3c957fabdfa368e710dfb2a078a732f'

  depends_on MarkdownProvider

  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