lib/command.rb in dev_tasks-1.0.27 vs lib/command.rb in dev_tasks-1.0.28

- old
+ new

@@ -1,59 +1,59 @@ -class Command < Hash - def initialize command - - if(command.kind_of?(String)) - self[:input] = command - self[:timeout] = 0 - self[:directory] = '' - self[:exit_code] = 0 - self[:output] = '' - self[:error] = '' - self[:machine_name] = '' - self[:user_name] = '' - self[:start_time] = nil - self[:end_time] = nil - end - - if(command.kind_of?(Hash)) - command.each{|k,v| - self[k.to_sym]=v - } - end - end - - def execute - - Logger.start_command self - - pwd=Dir.pwd - Dir.chdir(self[:directory]) if(self.has_key?(:directory) && File.exists?(self[:directory])) - #print " " + Color.green + self[:input] + Color.clear - - self[:start_time]=Time.now - timer=Timer.new - if self[:input].include?('<%') && self[:input].include?('%>') - ruby = self[:input].gsub("<%","").gsub("%>","") - - begin - puts "eval(#{ruby})" - self[:output]=eval(ruby) - rescue - puts "unable to eval(#{ruby})" - raise "unable to eval(#{ruby})" - end - - #puts " " + timer.elapsed_str - self[:elapsed] = timer.elapsed_str - self[:end_time] = Time.now - else - self[:output] = `#{self[:input]}` - self[:elapsed] = timer.elapsed_str - self[:end_time] = Time.now - self[:exit_code]=$?.to_i - end - - Dir.chdir(pwd) if pwd != Dir.pwd - Logger.end_command self - end - +class Command < Hash + def initialize command + + if(command.kind_of?(String)) + self[:input] = command + self[:timeout] = 0 + self[:directory] = '' + self[:exit_code] = 0 + self[:output] = '' + self[:error] = '' + self[:machine_name] = '' + self[:user_name] = '' + self[:start_time] = nil + self[:end_time] = nil + end + + if(command.kind_of?(Hash)) + command.each{|k,v| + self[k.to_sym]=v + } + end + end + + def execute + + Logger.start_command self + + pwd=Dir.pwd + Dir.chdir(self[:directory]) if(self.has_key?(:directory) && File.exists?(self[:directory])) + #print " " + Color.green + self[:input] + Color.clear + + self[:start_time]=Time.now + timer=Timer.new + if self[:input].include?('<%') && self[:input].include?('%>') + ruby = self[:input].gsub("<%","").gsub("%>","") + + begin + puts "eval(#{ruby})" + self[:output]=eval(ruby) + rescue + puts "unable to eval(#{ruby})" + raise "unable to eval(#{ruby})" + end + + #puts " " + timer.elapsed_str + self[:elapsed] = timer.elapsed_str + self[:end_time] = Time.now + else + self[:output] = `#{self[:input]}` + self[:elapsed] = timer.elapsed_str + self[:end_time] = Time.now + self[:exit_code]=$?.to_i + end + + Dir.chdir(pwd) if pwd != Dir.pwd + Logger.end_command self + end + end \ No newline at end of file