# miscellaneous useful functions
module Utils
+ # turn a number of seconds into a human readable string, e.g
+ # 2 days, 3 hours, 18 minutes, 10 seconds
+ def Utils.secs_to_string(secs)
+ ret = ""
+ days = (secs / (60 * 60 * 24)).to_i
+ secs = secs % (60 * 60 * 24)
+ hours = (secs / (60 * 60)).to_i
+ secs = (secs % (60 * 60))
+ mins = (secs / 60).to_i
+ secs = (secs % 60).to_i
+ ret += "#{days} days, " if days > 0
+ ret += "#{hours} hours, " if hours > 0 || days > 0
+ ret += "#{mins} minutes and " if mins > 0 || hours > 0 || days > 0
+ ret += "#{secs} seconds"
+ return ret
+ end
+
+
def Utils.safe_exec(command, *args)
IO.popen("-") {|p|
if(p)
$stderr = $stdout
exec(command, *args)
rescue Exception => e
- puts "exec of #{command} led to exception: #{e}"
+ puts "exec of #{command} led to exception: #{e.inspect}"
Kernel::exit! 0
end
puts "exec of #{command} failed"
}
rescue => e
# cheesy for now
- $stderr.puts "Utils.http_get exception: #{e}, while trying to get #{uristr}"
+ error "Utils.http_get exception: #{e.inspect}, while trying to get #{uristr}"
return nil
end
end