Downloads a file from the given URL and saves it to the given filename. Returns whether the download succeeded.
Options:
show_progress: whether to show download progress. Default: false. logger: the logger to use. If not given, this function will log to STDERR. cacert: a CA certificate file to use for verifying SSL websites. The default is to use the download tool's down CA database. use_cache: Whether to copy the file from the download cache, if available. Default: false. connect_timeout: The maximum amount of time to spend on DNS lookup and establishing the TCP connection. Set to nil to disable this timeout. Default: 4. idle_timeout: The maximum idle read time. Set to nil to set this timeout to the default wget value, 900. Set to nil to disable this timeout. Default: 5. total_timeout: The maximum amount of time spent on the whole download operation, including connection time. Only has effect on curl. Set to nil to disable this timeout. Default: nil.
# File lib/phusion_passenger/utils/download.rb, line 62 def download(url, output, options = {}) options = { :connect_timeout => 4, :idle_timeout => 5 }.merge(options) logger = options[:logger] || Logger.new(STDERR) if options[:use_cache] && cache_dir = PhusionPassenger.download_cache_dir basename = basename_from_url(url) if File.exist?("#{cache_dir}/#{basename}") logger.info "Copying #{basename} from #{cache_dir}..." FileUtils.cp("#{cache_dir}/#{basename}", output) return true end end if PlatformInfo.find_command("curl") return download_with_curl(logger, url, output, options) elsif PlatformInfo.find_command("wget") return download_with_wget(logger, url, output, options) else logger.error "Could not download #{url}: no download tool found (curl or wget required)" return false end end
Generated with the Darkfish Rdoc Generator 2.