Sha256: 811c681ef7386e2577a5bc3ba40dc34bbe23b392e7ff77c66f39fbcb9312ce0e

Contents?: true

Size: 1.2 KB

Versions: 15

Compression:

Stored size: 1.2 KB

Contents

require 'fileutils'

module Lono::Utils::Item
  module Zip
    def zip(item)
      if item.directory?
        zip_directory(item)
      else
        zip_file(item)
      end
    end

    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

    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

    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
  end
end

Version data entries

15 entries across 15 versions & 1 rubygems

Version Path
lono-7.5.2 lib/lono/utils/item/zip.rb
lono-7.5.1 lib/lono/utils/item/zip.rb
lono-7.5.0 lib/lono/utils/item/zip.rb
lono-7.4.11 lib/lono/utils/item/zip.rb
lono-7.4.10 lib/lono/utils/item/zip.rb
lono-7.4.9 lib/lono/utils/item/zip.rb
lono-7.4.8 lib/lono/utils/item/zip.rb
lono-7.4.7 lib/lono/utils/item/zip.rb
lono-7.4.6 lib/lono/utils/item/zip.rb
lono-7.4.5 lib/lono/utils/item/zip.rb
lono-7.4.4 lib/lono/utils/item/zip.rb
lono-7.4.3 lib/lono/utils/item/zip.rb
lono-7.4.2 lib/lono/utils/item/zip.rb
lono-7.4.1 lib/lono/utils/item/zip.rb
lono-7.4.0 lib/lono/utils/item/zip.rb