Add support for Luarocks dependencies.

This commit is contained in:
Adam Vandenberg 2012-02-29 20:52:20 -08:00
parent 85e05b27dd
commit d22eed3f16
3 changed files with 7 additions and 3 deletions

View File

@ -79,6 +79,7 @@ class UnsatisfiedExternalDependencyError < Homebrew::InstallationError
when :perl then 'cpan' when :perl then 'cpan'
when :node then 'npm' when :node then 'npm'
when :chicken then 'chicken-install' when :chicken then 'chicken-install'
when :lua then "luarocks"
end end
end end
@ -98,6 +99,8 @@ class UnsatisfiedExternalDependencyError < Homebrew::InstallationError
"npm install" "npm install"
when :chicken when :chicken
"chicken-install" "chicken-install"
when :lua
"luarocks install"
end end
end end
end end

View File

@ -745,7 +745,7 @@ EOF
def depends_on name def depends_on name
@deps ||= [] @deps ||= []
@external_deps ||= {:python => [], :perl => [], :ruby => [], :jruby => [], :chicken => [], :rbx => [], :node => []} @external_deps ||= {:python => [], :perl => [], :ruby => [], :jruby => [], :chicken => [], :rbx => [], :node => [], :lua => []}
case name case name
when String, Formula when String, Formula
@ -753,7 +753,7 @@ EOF
when Hash when Hash
key, value = name.shift key, value = name.shift
case value case value
when :python, :perl, :ruby, :jruby, :chicken, :rbx, :node when :python, :perl, :ruby, :jruby, :chicken, :rbx, :node, :lua
@external_deps[value] << key @external_deps[value] << key
when :optional, :recommended, :build when :optional, :recommended, :build
@deps << key @deps << key

View File

@ -342,6 +342,7 @@ def external_dep_check dep, type
when :perl then %W{/usr/bin/env perl -e use\ #{dep}} when :perl then %W{/usr/bin/env perl -e use\ #{dep}}
when :chicken then %W{/usr/bin/env csi -e (use #{dep})} when :chicken then %W{/usr/bin/env csi -e (use #{dep})}
when :node then %W{/usr/bin/env node -e require('#{dep}');} when :node then %W{/usr/bin/env node -e require('#{dep}');}
when :lua then %W{/usr/bin/env luarocks show #{dep}}
end end
end end
@ -365,7 +366,7 @@ class Formula
end end
def check_external_deps def check_external_deps
[:ruby, :python, :perl, :jruby, :rbx, :chicken, :node].each do |type| [:ruby, :python, :perl, :jruby, :rbx, :chicken, :node, :lua].each do |type|
self.external_deps[type].each do |dep| self.external_deps[type].each do |dep|
unless quiet_system(*external_dep_check(dep, type)) unless quiet_system(*external_dep_check(dep, type))
raise UnsatisfiedExternalDependencyError.new(dep, type) raise UnsatisfiedExternalDependencyError.new(dep, type)