class AptlyCli::AptlyPublish
Public Instance Methods
_parse_names(names, label_type)
click to toggle source
# File lib/aptly_publish.rb, line 45 def _parse_names(names, label_type) repos_to_publish = [] names = [names] if names.is_a? String names.each do |k| if k.include? '/' repo, component = k.split('/') repos_to_publish << { label_type.to_s => component, 'Component' => repo } else repos_to_publish << { label_type.to_s => k } end end return repos_to_publish end
_parse_snapshots(names)
click to toggle source
# File lib/aptly_publish.rb, line 37 def _parse_snapshots(names) snapshots_to_publish = [] names.each_pair do |k, v| snapshots_to_publish << { Component: v.to_s, Name: k.to_s } end return snapshots_to_publish end
build_body(available_options_for_func, publish_options, body)
click to toggle source
# File lib/aptly_publish.rb, line 71 def build_body(available_options_for_func, publish_options, body) available_options_for_func.each do |option| if publish_options.key?(option) body[option.capitalize] = publish_options[option] end end end
parse_gpg_options(available_gpg_options, publish_options)
click to toggle source
# File lib/aptly_publish.rb, line 60 def parse_gpg_options(available_gpg_options, publish_options) gpg_options = {} available_gpg_options.each do |option| next unless publish_options.key?(option) unless publish_options[option].nil? gpg_options.merge!(option.capitalize.to_s => publish_options[option]) end end return gpg_options end
publish_drop(publish_options={})
click to toggle source
# File lib/aptly_publish.rb, line 18 def publish_drop(publish_options={}) uri = '/publish' uri += if publish_options[:prefix] "/#{publish_options[:prefix]}" else '/:.' end uri += "/#{publish_options[:distribution]}" uri += '?force=1' if publish_options[:force] == true self.class.delete(uri) end
publish_list()
click to toggle source
# File lib/aptly_publish.rb, line 32 def publish_list uri = '/publish' self.class.get(uri) end
publish_repo(names, publish_options={})
click to toggle source
# File lib/aptly_publish.rb, line 79 def publish_repo(names, publish_options={}) uri = '/publish' label_type = 'Name' repos = _parse_names(names, label_type) gpg_options = parse_gpg_options(@@available_gpg_options, publish_options) @body = {} @body[:SourceKind] = publish_options[:sourcekind] @body[:Sources] = repos build_body(@@available_options_for_repo, publish_options, @body) @body[:Signing] = gpg_options unless gpg_options.empty? uri += "/#{publish_options[:prefix]}" if publish_options[:prefix] @body_json = @body.to_json self.class.post(uri, :headers => { 'Content-Type' => 'application/json' }, :body => @body_json) end
publish_update(publish_options={})
click to toggle source
# File lib/aptly_publish.rb, line 99 def publish_update(publish_options={}) uri = '/publish' gpg_options = parse_gpg_options(@@available_gpg_options, publish_options) @body = {} unless publish_options[:snapshots].nil? @body[:Snapshots] = _parse_snapshots(publish_options[:snapshots]) end unless gpg_options.empty? @body[:Signing] = gpg_options end build_body(@@available_options_for_update, publish_options, @body) uri += if publish_options[:prefix] "/#{publish_options[:prefix]}" else '/' end uri += "/#{publish_options[:distribution]}" @body_json = @body.to_json self.class.put(uri, :headers => { 'Content-Type' => 'application/json' }, :body => @body_json) end