From 116406c74d4c62f420b2492a18f9470b8469471d Mon Sep 17 00:00:00 2001 From: Josh Holtrop Date: Wed, 26 Jun 2013 21:27:57 -0400 Subject: [PATCH] Environment.execute() expands $ variable references recursively --- lib/rscons/environment.rb | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/lib/rscons/environment.rb b/lib/rscons/environment.rb index 82661d3..4084779 100644 --- a/lib/rscons/environment.rb +++ b/lib/rscons/environment.rb @@ -48,7 +48,26 @@ module Rscons end def execute(short_desc, command) - command = command.flatten + expand_varref = proc do |varref| + if varref.is_a?(Array) + varref.map do |ent| + expand_varref.call(ent) + end + else + if varref[0] == '$' + varname = varref[1, varref.size] + varval = self[varname] + if varval + expand_varref.call(varval) + else + raise "Could not find variable #{varname.inspect}" + end + else + varref + end + end + end + command = expand_varref.call(command.flatten).flatten if @echo == :command puts command.join(' ') elsif @echo == :short