Compare commits

...
3 Commits
Author SHA1 Message Date
josh 831b9bf2c7 v1.3.0 2014-02-25 12:18:02 -05:00
josh 031395bb57 add v1.3.0 release notes 2014-02-25 12:17:49 -05:00
josh e3aeb7f4d7 Change Environment#execute() options Hash to contain :env and :options keys for Kernel#system() 2014-02-25 12:14:52 -05:00
4 changed files with 18 additions and 7 deletions

No files matched your search

+7
View File
@@ -243,7 +243,14 @@ http://rubydoc.info/github/holtrop/rscons/frames.
## Release Notes ## Release Notes
### v1.3.0
- change Environment#execute() options parameter to accept the following options keys:
- :env to pass an environment Hash to Kernel#system
- :options to pass an options Hash to Kernel#system
### v1.2.0 ### v1.2.0
- add :clone option to Environment#clone to control exactly which Environment attributes are cloned - add :clone option to Environment#clone to control exactly which Environment attributes are cloned
- allow nil to be passed in to Environment#build_root= - allow nil to be passed in to Environment#build_root=
+6 -2
View File
@@ -224,7 +224,9 @@ module Rscons
# @param short_desc [String] Message to print if the Environment's echo # @param short_desc [String] Message to print if the Environment's echo
# mode is set to :short # mode is set to :short
# @param command [Array] The command to execute. # @param command [Array] The command to execute.
# @param options [Hash] Optional options to pass to Kernel#system. # @param options [Hash] Optional options, possible keys:
# - :env - environment Hash to pass to Kernel#system.
# - :options - options Hash to pass to Kernel#system.
def execute(short_desc, command, options = {}) def execute(short_desc, command, options = {})
print_command = proc do print_command = proc do
puts command.map { |c| c =~ /\s/ ? "'#{c}'" : c }.join(' ') puts command.map { |c| c =~ /\s/ ? "'#{c}'" : c }.join(' ')
@@ -234,7 +236,9 @@ module Rscons
elsif @echo == :short elsif @echo == :short
puts short_desc puts short_desc
end end
system(*command, options).tap do |result| env_args = options[:env] ? [options[:env]] : []
options_args = options[:options] ? [options[:options]] : []
system(*env_args, *command, *options_args).tap do |result|
unless result or @echo == :command unless result or @echo == :command
$stdout.write "Failed command was: " $stdout.write "Failed command was: "
print_command.call print_command.call
+1 -1
View File
@@ -1,4 +1,4 @@
module Rscons module Rscons
# gem version # gem version
VERSION = "1.2.0" VERSION = "1.3.0"
end end
+4 -4
View File
@@ -219,7 +219,7 @@ module Rscons
it "prints the short description and executes the command" do it "prints the short description and executes the command" do
env = Environment.new(echo: :short) env = Environment.new(echo: :short)
env.should_receive(:puts).with("short desc") env.should_receive(:puts).with("short desc")
env.should_receive(:system).with("a", "command", {}).and_return(true) env.should_receive(:system).with("a", "command").and_return(true)
env.execute("short desc", ["a", "command"]) env.execute("short desc", ["a", "command"])
end end
end end
@@ -228,7 +228,7 @@ module Rscons
it "prints the short description, executes the command, and prints the failed command line" do it "prints the short description, executes the command, and prints the failed command line" do
env = Environment.new(echo: :short) env = Environment.new(echo: :short)
env.should_receive(:puts).with("short desc") env.should_receive(:puts).with("short desc")
env.should_receive(:system).with("a", "command", {}).and_return(false) env.should_receive(:system).with("a", "command").and_return(false)
$stdout.should_receive(:write).with("Failed command was: ") $stdout.should_receive(:write).with("Failed command was: ")
env.should_receive(:puts).with("a command") env.should_receive(:puts).with("a command")
env.execute("short desc", ["a", "command"]) env.execute("short desc", ["a", "command"])
@@ -240,8 +240,8 @@ module Rscons
it "prints the command executed and executes the command" do it "prints the command executed and executes the command" do
env = Environment.new(echo: :command) env = Environment.new(echo: :command)
env.should_receive(:puts).with("a command '--arg=val with spaces'") env.should_receive(:puts).with("a command '--arg=val with spaces'")
env.should_receive(:system).with("a", "command", "--arg=val with spaces", opt: :val).and_return(false) env.should_receive(:system).with({modified: :environment}, "a", "command", "--arg=val with spaces", {opt: :val}).and_return(false)
env.execute("short desc", ["a", "command", "--arg=val with spaces"], opt: :val) env.execute("short desc", ["a", "command", "--arg=val with spaces"], env: {modified: :environment}, options: {opt: :val})
end end
end end
end end