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