class Picobox::Boxes::Manifest

Attributes

os[R]
type[R]

Public Class Methods

new(os, type = nil) click to toggle source
# File lib/picobox/boxes/manifest.rb, line 4
def initialize(os, type = nil)
  @os, @type = os, type
end

Public Instance Methods

additional_files() click to toggle source
# File lib/picobox/boxes/manifest.rb, line 41
def additional_files
  (package_contents - source.to_h.values).map do |file|
    { source: file, dest: "#{os.project_root}/#{strip_path(file)}" }
  end
end
check!() click to toggle source
# File lib/picobox/boxes/manifest.rb, line 19
def check!
  raise Errors::BoxNotImplemented unless list.include?(type)
end
dest() click to toggle source
# File lib/picobox/boxes/manifest.rb, line 33
def dest
  @dest ||= OpenStruct.new(
    start_script: "#{os.project_root}/#{Picobox::CONFIG_DIR}/start",
    docker_compose: "#{os.project_root}/docker-compose.yml",
    dockerfile: "#{os.project_root}/Dockerfile"
  )
end
list() click to toggle source
# File lib/picobox/boxes/manifest.rb, line 8
def list
  result = Dir.glob("#{os.box_packages_dir}/*").select {|f| File.directory? f}
  result.map {|r| strip_path(r) }.sort!
end
package_contents() click to toggle source
# File lib/picobox/boxes/manifest.rb, line 14
def package_contents
  @package_contents ||= Dir.glob(File.join(package_dir, "*"))
end
source() click to toggle source
# File lib/picobox/boxes/manifest.rb, line 24
def source
  @source ||= OpenStruct.new(
    start_script: "#{package_dir}/start",
    docker_compose: "#{package_dir}/docker-compose.yml",
    dockerfile: "#{package_dir}/Dockerfile"
  )
end

Private Instance Methods

package_dir() click to toggle source
# File lib/picobox/boxes/manifest.rb, line 50
def package_dir
  "#{os.box_packages_dir}/#{type}"
end
strip_path(file) click to toggle source
# File lib/picobox/boxes/manifest.rb, line 54
def strip_path(file)
  file.split('/').last
end