Sha256: d3d77928ca98276add14db78dbd12ff232c55e395d8a23ed7f5fc18103d45961

Contents?: true

Size: 1.4 KB

Versions: 42

Compression:

Stored size: 1.4 KB

Contents

require "open-uri"

module Lambdagem::Extract
  autoload :ClassMethods, 'lambdagem/extract/class_methods'

  class Base < Lambdagem::Base
    extend ClassMethods

    def clean_downloads(folder)
      path = "#{@build_root}/downloads/#{folder}"
      say "Removing cache: #{path}"
      FileUtils.rm_rf(path)
    end

    def unpack_tarball(tarball_path)
      dest = project_root
      say "Unpacking into #{dest}"
      FileUtils.mkdir_p(dest)
      untar(tarball_path, dest)
    end

    def untar(tarball_path, parent_folder_dest)
      sh("tar -xzf #{tarball_path} -C #{parent_folder_dest}")
    end

    def sh(command)
      say "=> #{command}".colorize(:green)
      success = system(command)
      abort("Command Failed") unless success
      success
    end

    def url_exists?(url)
      self.class.url_exists?(url)
    end

    # Returns the dest path
    def download_file(source_url, dest)
      say "Url #{source_url}"
      return unless url_exists?(source_url)

      if File.exist?(dest)
        say "File already downloaded #{dest}"
        return dest
      end

      say "Downloading..."
      FileUtils.mkdir_p(File.dirname(dest)) # ensure parent folder exists

      File.open(dest, 'wb') do |saved_file|
        open(source_url, 'rb') do |read_file|
          saved_file.write(read_file.read)
        end
      end
      dest
    end

    def project_root
      @options[:project_root] || "."
    end
  end
end

Version data entries

42 entries across 42 versions & 1 rubygems

Version Path
jets-1.0.1 vendor/lambdagem/lib/lambdagem/extract/base.rb
jets-1.0.0 vendor/lambdagem/lib/lambdagem/extract/base.rb
jets-0.10.4 vendor/lambdagem/lib/lambdagem/extract/base.rb
jets-0.10.3 vendor/lambdagem/lib/lambdagem/extract/base.rb
jets-0.10.2 vendor/lambdagem/lib/lambdagem/extract/base.rb
jets-0.10.1 vendor/lambdagem/lib/lambdagem/extract/base.rb
jets-0.10.0 vendor/lambdagem/lib/lambdagem/extract/base.rb
jets-0.9.2 vendor/lambdagem/lib/lambdagem/extract/base.rb
jets-0.9.1 vendor/lambdagem/lib/lambdagem/extract/base.rb
jets-0.9.0 vendor/lambdagem/lib/lambdagem/extract/base.rb
jets-0.8.18 vendor/lambdagem/lib/lambdagem/extract/base.rb
jets-0.8.17 vendor/lambdagem/lib/lambdagem/extract/base.rb
jets-0.8.15 vendor/lambdagem/lib/lambdagem/extract/base.rb
jets-0.8.14 vendor/lambdagem/lib/lambdagem/extract/base.rb
jets-0.8.13 vendor/lambdagem/lib/lambdagem/extract/base.rb
jets-0.8.12 vendor/lambdagem/lib/lambdagem/extract/base.rb
jets-0.8.11 vendor/lambdagem/lib/lambdagem/extract/base.rb
jets-0.8.10 vendor/lambdagem/lib/lambdagem/extract/base.rb
jets-0.8.9 vendor/lambdagem/lib/lambdagem/extract/base.rb
jets-0.8.8 vendor/lambdagem/lib/lambdagem/extract/base.rb