Sha256: 2be5efb924173b7188c6ef3f9894c50b3daf1b7992b0f4a2edeb9fb8c54ffa4b

Contents?: true

Size: 1.28 KB

Versions: 42

Compression:

Stored size: 1.28 KB

Contents

module Jets
  class TmpLoader
    include AwsServices

    def self.load!
      new.load
    end

    def initialize(yaml_path=nil)
      yaml_path ||= "#{Jets.root}/handlers/data.yml"
      return unless File.exist?(yaml_path)
      @data = YAML.load_file(yaml_path)
      @s3_bucket = @data['s3_bucket']
      @rack_zip = @data['rack_zip']
    end

    def load
      rack
    end

    def rack
      return unless @rack_zip
      download_and_extract(@rack_zip, '/tmp/rack')
    end

    def download_and_extract(zip_file, folder_dest)
      s3_key = "jets/code/#{zip_file}" # jets/code/rack-checksum.zip
      download_path = "/tmp/#{zip_file}" # /tmp/rack-checksum.zip

      download(s3_key, download_path)
      unzip(download_path, folder_dest)
    end

    def download(key, dest)
      # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/S3/Client.html#get_object-instance_method
      # stream object directly to disk
      s3.get_object(response_target: dest,
                    bucket: @s3_bucket,
                    key: key)
    end

    def unzip(zipfile, folder_dest)
      sh "unzip -qo #{zipfile} -d #{folder_dest}"
    end

    def sh(command)
      puts "=> #{command}"
      success = system(command)
      raise "Command #{command} failed" unless success
      success
    end
  end
end

Version data entries

42 entries across 42 versions & 2 rubygems

Version Path
jets-3.2.2 lib/jets/tmp_loader.rb
jets-3.2.1 lib/jets/tmp_loader.rb
jets.benforeva-3.0.17.pre.mount.pre.fix lib/jets/tmp_loader.rb
jets-3.2.0 lib/jets/tmp_loader.rb
jets-3.1.5 lib/jets/tmp_loader.rb
jets-3.1.4 lib/jets/tmp_loader.rb
jets-3.1.3 lib/jets/tmp_loader.rb
jets-3.1.2 lib/jets/tmp_loader.rb
jets-3.1.1 lib/jets/tmp_loader.rb
jets-3.1.0 lib/jets/tmp_loader.rb
jets-3.0.23 lib/jets/tmp_loader.rb
jets-3.0.22 lib/jets/tmp_loader.rb
jets-3.0.21 lib/jets/tmp_loader.rb
jets-3.0.20 lib/jets/tmp_loader.rb
jets-3.0.19 lib/jets/tmp_loader.rb
jets-3.0.18 lib/jets/tmp_loader.rb
jets-3.0.17 lib/jets/tmp_loader.rb
jets-3.0.16 lib/jets/tmp_loader.rb
jets-3.0.15 lib/jets/tmp_loader.rb
jets-3.0.14 lib/jets/tmp_loader.rb