Sha256: e01fae84730d2869b8d876883b6f6e6f3b75628baa2fd3bac5d6328af6d17197

Contents?: true

Size: 1.31 KB

Versions: 1

Compression:

Stored size: 1.31 KB

Contents

require 'aptly_cli/version'
require 'aptly_load'
require 'httmultiparty'

module AptlyCli
  # Uploading file into Aptly
  class AptlyFile
    include HTTMultiParty
    attr_accessor :file_uri, :package, :local_file_path

    # Load aptly-cli.conf and establish base_uri
    @config = AptlyCli::AptlyLoad.new.configure_with('/etc/aptly-cli.conf')
    base_uri "http://#{@config[:server]}:#{@config[:port]}/api"

    if @config[:username]
      if @config[:password]
        basic_auth @config[:username].to_s, @config[:password].to_s
      end
    end

    debug_output $stdout if @config[:debug] == true

    def initialize(file_uri=nil, package=nil, local_file_path=nil)
    end

    def file_dir
      uri = '/files'
      self.class.get uri
    end

    def file_get(file_uri)
      uri = if file_uri == '/'
              '/files'
            else
              '/files/' + file_uri
            end
      self.class.get uri
    end

    def file_delete(file_uri)
      uri = '/files' + file_uri
      self.class.delete uri
    end

    def file_post(post_options = {})
      api_file_uri = '/files' + post_options[:file_uri].to_s
      self.class.post(api_file_uri,
                      query: {
                        package: post_options[:package],
                        file: File.new(post_options[:local_file]) })
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
aptly_cli-0.2.8 lib/aptly_file.rb