diff options
| author | Jack Nagel | 2013-01-19 20:45:57 -0600 |
|---|---|---|
| committer | Jack Nagel | 2013-01-21 17:24:10 -0600 |
| commit | c53af4211704c9f08366de5eb22251e5ffb4bdd5 (patch) | |
| tree | 71726184554278030614c95a18f3333bdd96142c /Library/Homebrew/build_environment.rb | |
| parent | d06824c357a43cc2ecb5229784285cb30b037354 (diff) | |
| download | brew-c53af4211704c9f08366de5eb22251e5ffb4bdd5.tar.bz2 | |
Allow env DSL to take a block
In addition to
env :userpaths
env :std
requirements can now do
env do
append 'PATH', '/some/path/to/bin'
# and more
end
Diffstat (limited to 'Library/Homebrew/build_environment.rb')
| -rw-r--r-- | Library/Homebrew/build_environment.rb | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/Library/Homebrew/build_environment.rb b/Library/Homebrew/build_environment.rb index 97a8fae42..18876f954 100644 --- a/Library/Homebrew/build_environment.rb +++ b/Library/Homebrew/build_environment.rb @@ -17,4 +17,29 @@ class BuildEnvironment def userpaths? @settings.include? :userpaths end + + def modify_build_environment + p = @settings.find { |s| Proc === s } + ENV.instance_eval(&p) unless p.nil? + end + + def _dump(*) + @settings.dup.reject { |s| Proc === s }.join(":") + end + + def self._load(s) + new(*s.split(":").map(&:to_sym)) + end +end + +module BuildEnvironmentDSL + def env(*settings, &block) + @env ||= BuildEnvironment.new + if block_given? + @env << block + else + settings.each { |s| @env << s } + end + @env + end end |
