class Lono::Script::Upload

Public Instance Methods

bucket_name() click to toggle source
# File lib/lono/script/upload.rb, line 38
def bucket_name
  Lono::S3::Bucket.name
end
dest_folder() click to toggle source
# File lib/lono/script/upload.rb, line 42
def dest_folder
  "#{Lono.env}/scripts"
end
filesize() click to toggle source
# File lib/lono/script/upload.rb, line 25
def filesize
  Filesize.from(File.size(tarball_path).to_s + " B").pretty
end
key() click to toggle source
# File lib/lono/script/upload.rb, line 33
def key
  # Example key: cloudformation/development/scripts/scripts-md5
  "#{dest_folder}/#{File.basename(tarball_path)}"
end
run() click to toggle source
# File lib/lono/script/upload.rb, line 8
def run
  Lono::ProjectChecker.check
  return unless scripts_built?

  upload(tarball_path)
  puts "Uploaded #{File.basename(s3_dest)} to s3."
end
s3_dest() click to toggle source
# File lib/lono/script/upload.rb, line 29
def s3_dest
  "s3://#{bucket_name}/#{key}"
end
scripts_built?() click to toggle source

Scripts are only built if the app/scripts folder is non empty

# File lib/lono/script/upload.rb, line 47
def scripts_built?
  File.exist?(SCRIPTS_INFO_PATH) && !tarball_path.empty?
end
tarball_path() click to toggle source
# File lib/lono/script/upload.rb, line 51
def tarball_path
  IO.read(SCRIPTS_INFO_PATH).strip
end
upload(tarball_path) click to toggle source
# File lib/lono/script/upload.rb, line 16
def upload(tarball_path)
  puts "Uploading scripts.tgz (#{filesize}) to #{s3_dest}"
  obj = s3_resource.bucket(bucket_name).object(key)
  start_time = Time.now
  obj.upload_file(tarball_path)
  time_took = pretty_time(Time.now-start_time).color(:green)
  puts "Time took to upload code to s3: #{time_took}"
end