class Runner
Attributes
commands[R]
Public Class Methods
new(config)
click to toggle source
# File lib/go_run/runner.rb, line 4 def initialize(config) @config = config @commands = [] @output = "" end
Public Instance Methods
exit_status()
click to toggle source
# File lib/go_run/runner.rb, line 73 def exit_status non_zero_exit_status = @commands.find { |c| c["exit_code"] != 0 } if non_zero_exit_status.nil? return 0 end return non_zero_exit_status["exit_code"] end
requirement_fulfilled?(requirement)
click to toggle source
# File lib/go_run/runner.rb, line 61 def requirement_fulfilled?(requirement) if ENV.has_key? requirement["key"] return true elsif requirement.has_key? "default" ENV[requirement["key"]] = requirement["default"] return true else @output << "Environment variable #{requirement["key"]} not set\n" end return false end
run(targets)
click to toggle source
# File lib/go_run/runner.rb, line 10 def run(targets) targets.each do |target| run_target(target) end @output end
run_command(command)
click to toggle source
# File lib/go_run/runner.rb, line 52 def run_command(command) system(command) @commands << { "command" => command, "exit_code" => $?.exitstatus } $?.exitstatus end
run_target(target)
click to toggle source
# File lib/go_run/runner.rb, line 17 def run_target(target) raise "Target '#{target}' not found in configuration" if not @config.has_key? target if @config[target].has_key? "group" @config[target]["group"].each do |group| run_target(group) end end if @config[target].has_key? "set" @config[target]["set"].each do |env_var| ENV[env_var["key"]] = env_var["value"] end end if @config[target].has_key? "requires" @config[target]["requires"].each do |requirement| if not requirement_fulfilled?(requirement) @output << "Failed to fulfill requirements for target '#{target}'\n" return end end end if @config[target].has_key? "call" @config[target]["call"].each do |call| run_target(call["target"]) end end if @config[target].has_key? "commands" @config[target]["commands"].each do |command| if run_command(command) != 0 @output << "Failed to run command '#{command}'\n" return end end end end