aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPeter Aronoff2012-12-25 06:59:08 -0500
committerMisty De Meo2012-12-27 20:26:00 -0400
commitd315c98d44aa6efbca65e14dfcf9f8e6be9a2bee (patch)
tree5419fb110a68f42ef8ff4662744543efb7bfeded
parent5ca4d56d0b2e3feb637c6dc0a0c3354c59377b30 (diff)
downloadhomebrew-d315c98d44aa6efbca65e14dfcf9f8e6be9a2bee.tar.bz2
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 #16740. Signed-off-by: Misty De Meo <mistydemeo@gmail.com>
-rw-r--r--Library/Formula/shocco.rb23
1 files changed, 22 insertions, 1 deletions
diff --git a/Library/Formula/shocco.rb b/Library/Formula/shocco.rb
index 61b6a2978..09b92203c 100644
--- a/Library/Formula/shocco.rb
+++ b/Library/Formula/shocco.rb
@@ -8,12 +8,33 @@ class Pygments < Formula
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 'markdown'
+ depends_on MarkdownProvider.new
def install
Pygments.new.brew { libexec.install 'pygmentize','pygments' }