Class: Picobox::Boxes::Manifest

Inherits:
Object
  • Object
show all
Defined in:
lib/picobox/boxes/manifest.rb

Instance Method Summary collapse

Constructor Details

#initialize(os, type = nil) ⇒ Manifest

Returns a new instance of Manifest.



4
5
6
# File 'lib/picobox/boxes/manifest.rb', line 4

def initialize(os, type = nil)
  @os, @type = os, type
end

Instance Method Details

#additional_filesObject



41
42
43
44
45
# 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!Object



19
20
21
# File 'lib/picobox/boxes/manifest.rb', line 19

def check!
  raise Errors::BoxNotImplemented unless list.include?(type)
end

#destObject



33
34
35
36
37
38
39
# 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

#listObject



8
9
10
11
# File 'lib/picobox/boxes/manifest.rb', line 8

def list
  result = Dir.glob("#{Picobox.box_packages_dir}/*").select {|f| File.directory? f}
  result.map {|r| strip_path(r) }.sort!
end

#package_contentsObject



14
15
16
# File 'lib/picobox/boxes/manifest.rb', line 14

def package_contents
  @package_contents ||= Dir.glob(File.join(package_dir, "*"))
end

#sourceObject



24
25
26
27
28
29
30
# 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