module Lono::Utils::Item::Zip

Public Instance Methods

execute_zip(command) click to toggle source
# File lib/lono/utils/item/zip.rb, line 32
def execute_zip(command)
  # puts "=> #{command}".color(:green) # uncomment to debug
  `#{command}`
  unless $?.success?
    puts "ERROR: Fail to run #{command}".color(:red)
    puts "Maybe zip is not installed or path is incorrect?"
    exit 1
  end
end
zip(item) click to toggle source
# File lib/lono/utils/item/zip.rb, line 5
def zip(item)
  if item.directory?
    zip_directory(item)
  else
    zip_file(item)
  end
end
zip_directory(item) click to toggle source
# File lib/lono/utils/item/zip.rb, line 22
def zip_directory(item)
  path = item.output_path
  zip_file = item.zip_file_name

  puts "Zipping folder and generating md5 named file from: #{path}"
  command = "cd #{path} && zip --symlinks -rq #{zip_file} ." # create zipfile witih directory
  execute_zip(command)
  FileUtils.mv("#{path}/#{zip_file}", "#{File.dirname(path)}/#{zip_file}") # move zip back to the parent directory
end
zip_file(item) click to toggle source
# File lib/lono/utils/item/zip.rb, line 13
def zip_file(item)
  path = item.output_path
  zip_file = item.zip_file_name

  puts "Zipping file and generating md5 named file from: #{path}"
  command = "cd #{File.dirname(path)} && zip -q #{zip_file} #{File.basename(path)}" # create zipfile at same level of file
  execute_zip(command)
end