class Lexicon::Cli::Command::RemoteCommand

Public Instance Methods

delete(version) click to toggle source
# File lib/lexicon/cli/command/remote_command.rb, line 30
def delete(version)
  # @type [Aws::S3::Client] s3
  s3 = get(Lexicon::Common::Remote::S3Client)

  semver = Semantic::Version.new(version) rescue nil

  if semver.nil?
    puts "[ NOK ] #{version} is not a valid version.".red
  else
    bucket = semver.to_s

    if s3.bucket_exist?(bucket)
      s3.ls(bucket)
        .each { |content| s3.raw.delete_object(bucket: bucket, key: content.fetch(:key)) }
      s3.raw.delete_bucket(bucket: bucket)

      puts "[  OK ] The version #{semver} has been deleted from the server".green
    else
      puts "[ NOK ] The version #{semver} does not exist on the server".red
    end
  end
end
download(version) click to toggle source
# File lib/lexicon/cli/command/remote_command.rb, line 55
def download(version)
  # @type [Package::PackageDownloader] uploader
  downloader = get(Lexicon::Common::Remote::PackageDownloader)
  # @type [Package::DirectoryPackageLoader]
  loader = get(Lexicon::Common::Package::DirectoryPackageLoader)

  semver = Semantic::Version.new(version) rescue nil

  if semver.nil?
    puts "[ NOK ] #{version} is not a valid version.".red
  elsif !loader.load_package(semver.to_s).nil?
    puts "[ NOK ] You already have the version #{semver} locally.".red
  elsif downloader.download(semver)
    puts "[  OK ] The version #{semver} has been downloaded."
  else
    puts '[ NOK ] Error while downloading.'.red
  end
end
upload(version) click to toggle source
# File lib/lexicon/cli/command/remote_command.rb, line 9
def upload(version)
  # @type [Package::PackageUploader] uploader
  uploader = get(Lexicon::Common::Remote::PackageUploader)
  # @type [Package::DirectoryPackageLoader]
  loader = get(Lexicon::Common::Package::DirectoryPackageLoader)

  semver = Semantic::Version.new(version) rescue nil

  if semver.nil?
    puts "[ NOK ] #{version} is not a valid version.".red
  elsif (package = loader.load_package(semver.to_s)).nil?
    puts "[ NOK ] No package found for version #{semver}.".red
  elsif uploader.upload(package)
    puts "[  OK ] Version #{semver} uploaded.".green
  else
    puts '[ NOK ] Error while uploading.'.red
  end
end