diff options
Diffstat (limited to 'Library/Homebrew')
| -rw-r--r-- | Library/Homebrew/formula.rb | 8 | ||||
| -rw-r--r-- | Library/Homebrew/language/go.rb | 14 | ||||
| -rw-r--r-- | Library/Homebrew/resource.rb | 6 | ||||
| -rw-r--r-- | Library/Homebrew/software_spec.rb | 4 |
4 files changed, 28 insertions, 4 deletions
diff --git a/Library/Homebrew/formula.rb b/Library/Homebrew/formula.rb index 8a6041030..ef2933291 100644 --- a/Library/Homebrew/formula.rb +++ b/Library/Homebrew/formula.rb @@ -660,12 +660,16 @@ class Formula end # Define a named resource using a SoftwareSpec style block - def resource name, &block + def resource name, klass=Resource, &block specs.each do |spec| - spec.resource(name, &block) unless spec.resource_defined?(name) + spec.resource(name, klass, &block) unless spec.resource_defined?(name) end end + def go_resource name, &block + resource name, Resource::Go, &block + end + def depends_on dep specs.each { |spec| spec.depends_on(dep) } end diff --git a/Library/Homebrew/language/go.rb b/Library/Homebrew/language/go.rb new file mode 100644 index 000000000..c0b4fb0a6 --- /dev/null +++ b/Library/Homebrew/language/go.rb @@ -0,0 +1,14 @@ +require "resource" + +module Language + module Go + # Given a set of resources, stages them to a gopath for + # building go software. + # The resource names should be the import name of the package, + # e.g. `resource "github.com/foo/bar"` + def self.stage_deps resources, target + godeps = resources.grep(Resource::Go) + godeps.each {|resource| resource.stage target} + end + end +end diff --git a/Library/Homebrew/resource.rb b/Library/Homebrew/resource.rb index 66372ad3e..97dcdf976 100644 --- a/Library/Homebrew/resource.rb +++ b/Library/Homebrew/resource.rb @@ -130,4 +130,10 @@ class Resource raise TypeError, "version '#{val.inspect}' should be a string" end end + + class Go < Resource + def stage target + super(target/name) + end + end end diff --git a/Library/Homebrew/software_spec.rb b/Library/Homebrew/software_spec.rb index 3dbcc0cc5..b2071e119 100644 --- a/Library/Homebrew/software_spec.rb +++ b/Library/Homebrew/software_spec.rb @@ -69,10 +69,10 @@ class SoftwareSpec resources.has_key?(name) end - def resource name, &block + def resource name, klass=Resource, &block if block_given? raise DuplicateResourceError.new(name) if resource_defined?(name) - res = Resource.new(name, &block) + res = klass.new(name, &block) resources[name] = res dependency_collector.add(res) else |
