Class: Lexicon::Common::Remote::PackageUploader

Inherits:
RemoteBase
  • Object
show all
Includes:
Mixin::LoggerAware
Defined in:
lib/lexicon/common/remote/package_uploader.rb

Instance Attribute Summary

Attributes included from Mixin::LoggerAware

#logger

Instance Method Summary collapse

Methods included from Mixin::LoggerAware

#log, #log_error

Methods inherited from RemoteBase

#initialize

Constructor Details

This class inherits a constructor from Lexicon::Common::Remote::RemoteBase

Instance Method Details

#upload(package) ⇒ Boolean

Parameters:

Returns:

  • (Boolean)


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
36
37
38
39
40
# File 'lib/lexicon/common/remote/package_uploader.rb', line 11

def upload(package)
  bucket_name = package.version.to_s
  if !s3.bucket_exist?(bucket_name)
    s3.create_bucket(bucket: bucket_name)
    puts 'Uploading structures...'

    upload_files(*package.structure_files, bucket: bucket_name, prefix: 'data')
    puts '[  OK ] Structure uploaded.'.green

    data_files = package.file_sets
                        .select(&:data_path)
                        .map { |fs| package.data_path(fs) }

    upload_files(*data_files, bucket: bucket_name, prefix: 'data') do |path|
      puts "[  OK ] #{path.basename}".green
    end

    upload_files(package.checksum_file, package.spec_file, bucket: bucket_name) do |path|
      puts "[  OK ] #{path.basename}".green
    end

    true
  else
    false
  end
rescue StandardError => e
  log_error(e)

  false
end