Class: Buildpack::Packager::Package

Inherits:
Struct
  • Object
show all
Defined in:
lib/buildpack/packager/package.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#optionsObject

Returns the value of attribute options

Returns:

  • (Object)

    the current value of options



11
12
13
# File 'lib/buildpack/packager/package.rb', line 11

def options
  @options
end

Instance Method Details

#build_dependencies(temp_dir) ⇒ Object



17
18
19
20
21
22
23
24
25
# File 'lib/buildpack/packager/package.rb', line 17

def build_dependencies(temp_dir)
  local_cache_directory = options[:cache_dir] || "#{ENV['HOME']}/.buildpack-packager/cache"
  FileUtils.mkdir_p(local_cache_directory)

  dependency_dir = File.join(temp_dir, "dependencies")
  FileUtils.mkdir_p(dependency_dir)

  download_dependencies(manifest[:dependencies], local_cache_directory, dependency_dir)
end

#build_zip_file(temp_dir) ⇒ Object



56
57
58
59
# File 'lib/buildpack/packager/package.rb', line 56

def build_zip_file(temp_dir)
  FileUtils.rm_rf(zip_file_path)
  zip_files(temp_dir, zip_file_path, manifest[:exclude_files])
end

#copy_buildpack_to_temp_dir(temp_dir) ⇒ Object



12
13
14
15
# File 'lib/buildpack/packager/package.rb', line 12

def copy_buildpack_to_temp_dir(temp_dir)
  FileUtils.cp_r(File.join(options[:root_dir], '.'), temp_dir)
  FileUtils.cp(options[:manifest_path], File.join(temp_dir, 'manifest.yml'))
end

#defaultsObject



65
66
67
# File 'lib/buildpack/packager/package.rb', line 65

def defaults
  DefaultVersionsPresenter.new(manifest['default_versions']).present
end

#download_dependencies(dependencies, local_cache_directory, dependency_dir) ⇒ Object



27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
# File 'lib/buildpack/packager/package.rb', line 27

def download_dependencies(dependencies, local_cache_directory, dependency_dir)
  dependencies.each do |dependency|
    safe_uri = uri_without_credentials(dependency['uri'])
    translated_filename = uri_cache_path(safe_uri)
    local_cached_file = File.expand_path(File.join(local_cache_directory, translated_filename))

    if options[:force_download] || !File.exist?(local_cached_file)
      puts "Downloading #{dependency['name']} version #{dependency['version']} from: #{safe_uri}"
      download_file(dependency['uri'], local_cached_file)
      human_readable_size = `du -h #{local_cached_file} | cut -f1`.strip
      puts "  Using #{dependency['name']} version #{dependency['version']} with size #{human_readable_size}"

      from_local_cache = false
    else
      human_readable_size = `du -h #{local_cached_file} | cut -f1`.strip
      puts "Using #{dependency['name']} version #{dependency['version']} from local cache at: #{local_cached_file} with size #{human_readable_size}"
      from_local_cache = true
    end

    ensure_correct_dependency_checksum({
      local_cached_file: local_cached_file,
      dependency: dependency,
      from_local_cache: from_local_cache
    })

    FileUtils.cp(local_cached_file, dependency_dir)
  end
end

#listObject



61
62
63
# File 'lib/buildpack/packager/package.rb', line 61

def list
  DependenciesPresenter.new(manifest['dependencies']).present
end

#zip_file_pathObject



69
70
71
# File 'lib/buildpack/packager/package.rb', line 69

def zip_file_path
  Shellwords.escape(File.join(options[:root_dir], zip_file_name))
end