def monitored_download( urls, filepath, checksum, est_size=0, force=false )
checksum = checksum.to_s.strip
est_size = nil if est_size == 0
success=nil
if File.exists?(filepath)
if compute_checksum(filepath) == checksum and ! force
interface.report("File has already been fetched and passes checksum.")
success = filepath
else
File.delete(filepath)
end
end
unless success
urls.each do |url|
begin
success = self.download( url, filepath, checksum, est_size )
break if success
rescue
next
end
end
end
return success
end