Class: Buildizer::Target::Base

Inherits:
Object
  • Object
show all
Defined in:
lib/buildizer/target/base.rb

Direct Known Subclasses

Fpm, Native, Patch

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(builder, image, name:, package_name:, package_version:, package_cloud: [], prepare: [], build_dep: [], before_build: [], maintainer: nil, &blk) ⇒ Base

Returns a new instance of Base.



16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/buildizer/target/base.rb', line 16

def initialize(builder, image,
               name:, package_name:, package_version:, package_cloud: [],
               prepare: [], build_dep: [], before_build: [],
               maintainer: nil, &blk)
  @builder = builder
  @image = image

  @name = name
  @package_name = package_name
  @package_version = package_version
  @package_cloud = package_cloud
  @prepare = prepare
  @build_dep = build_dep
  @before_build = before_build
  @maintainer = maintainer

  yield if block_given?

  image_work_path.mkpath
  image_build_path.mkpath
  image_extra_path.mkpath
end

Instance Attribute Details

#before_buildObject (readonly)

Returns the value of attribute before_build.



13
14
15
# File 'lib/buildizer/target/base.rb', line 13

def before_build
  @before_build
end

#build_depObject (readonly)

Returns the value of attribute build_dep.



12
13
14
# File 'lib/buildizer/target/base.rb', line 12

def build_dep
  @build_dep
end

#builderObject (readonly)

Returns the value of attribute builder.



4
5
6
# File 'lib/buildizer/target/base.rb', line 4

def builder
  @builder
end

#imageObject (readonly)

Returns the value of attribute image.



5
6
7
# File 'lib/buildizer/target/base.rb', line 5

def image
  @image
end

#maintainerObject (readonly)

Returns the value of attribute maintainer.



14
15
16
# File 'lib/buildizer/target/base.rb', line 14

def maintainer
  @maintainer
end

#nameObject (readonly)

Returns the value of attribute name.



7
8
9
# File 'lib/buildizer/target/base.rb', line 7

def name
  @name
end

#package_cloudObject (readonly)

Returns the value of attribute package_cloud.



10
11
12
# File 'lib/buildizer/target/base.rb', line 10

def package_cloud
  @package_cloud
end

#package_nameObject (readonly)

Returns the value of attribute package_name.



8
9
10
# File 'lib/buildizer/target/base.rb', line 8

def package_name
  @package_name
end

#package_versionObject (readonly)

Returns the value of attribute package_version.



9
10
11
# File 'lib/buildizer/target/base.rb', line 9

def package_version
  @package_version
end

#prepareObject (readonly)

Returns the value of attribute prepare.



11
12
13
# File 'lib/buildizer/target/base.rb', line 11

def prepare
  @prepare
end

Instance Method Details

#_package_cloud_path(repo) ⇒ Object



86
87
88
# File 'lib/buildizer/target/base.rb', line 86

def _package_cloud_path(repo)
  "#{repo}/#{image.os_package_cloud_name}/#{image.os_package_cloud_version}"
end

#base_package_nameObject



60
61
62
# File 'lib/buildizer/target/base.rb', line 60

def base_package_name
  package_name.split('-').first
end

#container_package_archive_nameObject



102
103
104
# File 'lib/buildizer/target/base.rb', line 102

def container_package_archive_name
  "#{container_package_name}.tar.gz"
end

#container_package_archive_pathObject



110
111
112
# File 'lib/buildizer/target/base.rb', line 110

def container_package_archive_path
  Pathname.new('/').join(container_package_archive_name)
end

#container_package_nameObject



43
44
45
# File 'lib/buildizer/target/base.rb', line 43

def container_package_name
  raise
end

#container_package_pathObject



106
107
108
# File 'lib/buildizer/target/base.rb', line 106

def container_package_path
  Pathname.new('/').join(container_package_name)
end

#docker_cache_imageObject



76
77
78
# File 'lib/buildizer/target/base.rb', line 76

def docker_cache_image
  "#{image.docker.cache[:repo]}:#{docker_image_tag}" if image.docker.cache
end

#docker_imageObject



72
73
74
# File 'lib/buildizer/target/base.rb', line 72

def docker_image
  "#{docker_image_repository}:#{docker_image_tag}"
end

#docker_image_repositoryObject



64
65
66
# File 'lib/buildizer/target/base.rb', line 64

def docker_image_repository
  "buildizer/#{package_name}"
end

#docker_image_tagObject



68
69
70
# File 'lib/buildizer/target/base.rb', line 68

def docker_image_tag
  name.gsub('/', '__')
end

#image_build_pathObject



90
91
92
# File 'lib/buildizer/target/base.rb', line 90

def image_build_path
  image_work_path.join('build')
end

#image_extra_pathObject



94
95
96
# File 'lib/buildizer/target/base.rb', line 94

def image_extra_path
  image_work_path.join('extra')
end

#image_work_pathObject



39
40
41
# File 'lib/buildizer/target/base.rb', line 39

def image_work_path
  raise
end

#maintainer_emailObject



51
52
53
54
# File 'lib/buildizer/target/base.rb', line 51

def maintainer_email
  match = maintainer.match(/<(.*)>/) if maintainer
  match[1] if match
end

#package_version_tagObject



98
99
100
# File 'lib/buildizer/target/base.rb', line 98

def package_version_tag
  send(package_version_tag_param_name)
end

#package_version_tag_param_nameObject



47
48
49
# File 'lib/buildizer/target/base.rb', line 47

def package_version_tag_param_name
  raise
end