module Pkg::Retrieve
Public Instance Methods
default_wget(local_target, url, additional_options = {})
click to toggle source
NOTE: When supplying additional options, if you want your value to be quoted (e.g. –reject='index*'), you must include the quotes as part of your string (e.g. {'reject' => “'index*'”}).
# File lib/packaging/retrieve.rb, line 40 def default_wget(local_target, url, additional_options = {}) wget_command = default_wget_command(local_target, url, additional_options) puts "Executing #{wget_command} . . ." %x(#{wget_command}) end
default_wget_command(local_target, url, additional_options = {})
click to toggle source
–no-parent = Only descend when recursing, never ascend –no-host-directories = Discard #{Pkg::Config.builds_server} when saving to disk –level=0 = infinitely recurse, no limit –cut-dirs 3 = will cut off #{Pkg::Config.project}, #{Pkg::Config.ref}, and the first directory in #{remote_target} from the url when saving to disk –directory-prefix = where to save to disk (defaults to ./) –reject = Reject all hits that match the supplied regex
# File lib/packaging/retrieve.rb, line 11 def default_wget_command(local_target, url, additional_options = {}) default_options = { 'quiet' => true, 'recursive' => true, 'no-parent' => true, 'no-host-directories' => true, 'level' => 0, 'cut-dirs' => 3, 'directory-prefix' => local_target, 'reject' => "'index*'", } options = default_options.merge(additional_options) wget = Pkg::Util::Tool.check_tool('wget') wget_command = wget options.each do |option, value| next unless value if value.is_a?(TrueClass) wget_command << " --#{option}" else wget_command << " --#{option}=#{value}" end end wget_command << " #{url}" return wget_command end
foss_only_retrieve(build_url, local_target)
click to toggle source
This will always retrieve from under the 'artifacts' directory
# File lib/packaging/retrieve.rb, line 47 def foss_only_retrieve(build_url, local_target) unless Pkg::Config.foss_platforms fail "FOSS_ONLY specified, but I don't know anything about FOSS_PLATFORMS. Retrieve cancelled." end default_wget(local_target, "#{build_url}/", { 'level' => 1 }) yaml_path = File.join(local_target, "#{Pkg::Config.ref}.yaml") unless File.readable?(yaml_path) fail "Couldn't read #{Pkg::Config.ref}.yaml, which is necessary for FOSS_ONLY. Retrieve cancelled." end platform_data = Pkg::Util::Serialization.load_yaml(yaml_path)[:platform_data] platform_data.each do |platform, paths| path_to_retrieve = File.dirname(paths[:artifact]) default_wget(local_target, "#{build_url}/#{path_to_retrieve}/") if Pkg::Config.foss_platforms.include?(platform) end end
retrieve_all(build_url, rsync_path, local_target)
click to toggle source
# File lib/packaging/retrieve.rb, line 63 def retrieve_all(build_url, rsync_path, local_target) if Pkg::Util::Tool.find_tool("wget") default_wget(local_target, "#{build_url}/") else warn "Could not find `wget` tool. Falling back to rsyncing from #{Pkg::Config.distribution_server}." begin Pkg::Util::Net.rsync_from("#{rsync_path}/", Pkg::Config.distribution_server, "#{local_target}/") rescue => e fail "Couldn't rsync packages from distribution server.\n#{e}" end end end