Module: Pkg::Retrieve
- Defined in:
- lib/packaging/retrieve.rb
Class Method Summary collapse
-
.default_wget(local_target, url, additional_options = {}) ⇒ Object
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. => “‘index*’”).
-
.default_wget_command(local_target, url, additional_options = {}) ⇒ Object
–no-parent = Only descend when recursing, never ascend –no-host-directories = Discard http://#Config.builds_server when saving to disk –level=0 = infinitely recurse, no limit –cut-dirs 3 = will cut off #Config.project, #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.
-
.foss_only_retrieve(build_url, local_target) ⇒ Object
This will always retrieve from under the ‘artifacts’ directory.
- .retrieve_all(build_url, rsync_path, local_target) ⇒ Object
Class Method Details
.default_wget(local_target, url, additional_options = {}) ⇒ Object
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. => “‘index*’”).
40 41 42 43 44 |
# File 'lib/packaging/retrieve.rb', line 40 def default_wget(local_target, url, = {}) wget_command = default_wget_command(local_target, url, ) puts "Executing #{wget_command} . . ." %x(#{wget_command}) end |
.default_wget_command(local_target, url, additional_options = {}) ⇒ Object
–no-parent = Only descend when recursing, never ascend –no-host-directories = Discard http://#Config.builds_server when saving to disk –level=0 = infinitely recurse, no limit –cut-dirs 3 = will cut off #Config.project, #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
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/packaging/retrieve.rb', line 11 def default_wget_command(local_target, url, = {}) = { 'quiet' => true, 'recursive' => true, 'no-parent' => true, 'no-host-directories' => true, 'level' => 0, 'cut-dirs' => 3, 'directory-prefix' => local_target, 'reject' => "'index*'", } = .merge() wget = Pkg::Util::Tool.check_tool('wget') wget_command = wget .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) ⇒ Object
This will always retrieve from under the ‘artifacts’ directory
47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
# 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) ⇒ Object
63 64 65 66 67 68 69 70 71 72 73 74 |
# 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 StandardError => e fail "Couldn't rsync packages from distribution server.\n#{e}" end end end |