buildizer 0.0.6 → 0.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +8 -8
- data/.gitignore +1 -0
- data/Gemfile.lock +4 -4
- data/lib/buildizer.rb +5 -0
- data/lib/buildizer/builder/base.rb +112 -69
- data/lib/buildizer/builder/fpm.rb +27 -50
- data/lib/buildizer/builder/native.rb +3 -4
- data/lib/buildizer/builder/patch.rb +40 -0
- data/lib/buildizer/cli.rb +6 -0
- data/lib/buildizer/docker.rb +101 -40
- data/lib/buildizer/image/base.rb +12 -0
- data/lib/buildizer/image/centos.rb +48 -16
- data/lib/buildizer/image/ubuntu.rb +31 -0
- data/lib/buildizer/image/ubuntu1604.rb +13 -0
- data/lib/buildizer/packager.rb +39 -24
- data/lib/buildizer/refine.rb +8 -2
- data/lib/buildizer/target/base.rb +77 -5
- data/lib/buildizer/target/fpm.rb +52 -5
- data/lib/buildizer/target/native.rb +9 -0
- data/lib/buildizer/target/package_name_mod.rb +17 -0
- data/lib/buildizer/target/patch.rb +33 -0
- data/lib/buildizer/version.rb +1 -1
- metadata +6 -2
data/lib/buildizer/refine.rb
CHANGED
@@ -4,8 +4,14 @@ module Buildizer
|
|
4
4
|
def underscore
|
5
5
|
self.gsub(/(.)([A-Z])/,'\1_\2').downcase
|
6
6
|
end
|
7
|
+
|
8
|
+
def match_glob?(glob)
|
9
|
+
File.fnmatch? glob, self, File::FNM_EXTGLOB
|
10
|
+
end
|
11
|
+
|
12
|
+
def on?
|
13
|
+
['1', 'true', 'yes'].include? self.downcase
|
14
|
+
end
|
7
15
|
end
|
8
16
|
end # Refine
|
9
|
-
|
10
|
-
using Refine
|
11
17
|
end # Buildizer
|
@@ -11,10 +11,12 @@ module Buildizer
|
|
11
11
|
attr_reader :prepare
|
12
12
|
attr_reader :build_dep
|
13
13
|
attr_reader :before_build
|
14
|
+
attr_reader :maintainer
|
14
15
|
|
15
16
|
def initialize(builder, image,
|
16
|
-
name:, package_name:, package_version:, package_cloud
|
17
|
-
prepare: [], build_dep: [], before_build: []
|
17
|
+
name:, package_name:, package_version:, package_cloud: [],
|
18
|
+
prepare: [], build_dep: [], before_build: [],
|
19
|
+
maintainer: nil, &blk)
|
18
20
|
@builder = builder
|
19
21
|
@image = image
|
20
22
|
|
@@ -25,14 +27,84 @@ module Buildizer
|
|
25
27
|
@prepare = prepare
|
26
28
|
@build_dep = build_dep
|
27
29
|
@before_build = before_build
|
30
|
+
@maintainer = maintainer
|
31
|
+
|
32
|
+
yield if block_given?
|
33
|
+
|
34
|
+
image_work_path.mkpath
|
35
|
+
image_build_path.mkpath
|
36
|
+
image_extra_path.mkpath
|
37
|
+
end
|
38
|
+
|
39
|
+
def image_work_path
|
40
|
+
raise
|
41
|
+
end
|
42
|
+
|
43
|
+
def container_package_name
|
44
|
+
raise
|
45
|
+
end
|
46
|
+
|
47
|
+
def package_version_tag_param_name
|
48
|
+
raise
|
49
|
+
end
|
50
|
+
|
51
|
+
def maintainer_email
|
52
|
+
match = maintainer.match(/<(.*)>/) if maintainer
|
53
|
+
match[1] if match
|
54
|
+
end
|
55
|
+
|
56
|
+
def package_version
|
57
|
+
@package_version.nil? ? nil : @package_version.to_s
|
58
|
+
end
|
59
|
+
|
60
|
+
def base_package_name
|
61
|
+
package_name.split('-').first
|
62
|
+
end
|
63
|
+
|
64
|
+
def docker_image_repository
|
65
|
+
"#{builder.packager.docker_image || "buildizer/#{package_name}"}"
|
66
|
+
end
|
67
|
+
|
68
|
+
def docker_image_tag
|
69
|
+
name.gsub('/', '__')
|
28
70
|
end
|
29
71
|
|
30
72
|
def docker_image
|
31
|
-
"#{
|
73
|
+
"#{docker_image_repository}:#{docker_image_tag}"
|
74
|
+
end
|
75
|
+
|
76
|
+
def package_cloud
|
77
|
+
@package_cloud.map do |desc|
|
78
|
+
desc.merge(package_path: _package_cloud_path(desc[:repo]))
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|
82
|
+
def _package_cloud_path(repo)
|
83
|
+
"#{repo}/#{image.os_package_cloud_name}/#{image.os_package_cloud_version}"
|
84
|
+
end
|
85
|
+
|
86
|
+
def image_build_path
|
87
|
+
image_work_path.join('build')
|
88
|
+
end
|
89
|
+
|
90
|
+
def image_extra_path
|
91
|
+
image_work_path.join('extra')
|
92
|
+
end
|
93
|
+
|
94
|
+
def package_version_tag
|
95
|
+
send(package_version_tag_param_name)
|
96
|
+
end
|
97
|
+
|
98
|
+
def container_package_archive_name
|
99
|
+
"#{container_package_name}.tar.gz"
|
100
|
+
end
|
101
|
+
|
102
|
+
def container_package_path
|
103
|
+
Pathname.new('/').join(container_package_name)
|
32
104
|
end
|
33
105
|
|
34
|
-
def
|
35
|
-
|
106
|
+
def container_package_archive_path
|
107
|
+
Pathname.new('/').join(container_package_archive_name)
|
36
108
|
end
|
37
109
|
end # Base
|
38
110
|
end # Target
|
data/lib/buildizer/target/fpm.rb
CHANGED
@@ -1,16 +1,63 @@
|
|
1
1
|
module Buildizer
|
2
2
|
module Target
|
3
3
|
class Fpm < Base
|
4
|
+
include PackageNameMod
|
5
|
+
|
4
6
|
attr_reader :fpm_script
|
5
7
|
attr_reader :fpm_config_files
|
6
8
|
attr_reader :fpm_files
|
9
|
+
attr_reader :fpm_conflicts
|
10
|
+
attr_reader :fpm_replaces
|
11
|
+
attr_reader :fpm_provides
|
12
|
+
attr_reader :fpm_depends
|
13
|
+
attr_reader :fpm_description
|
14
|
+
attr_reader :fpm_url
|
15
|
+
|
16
|
+
def initialize(builder, image,
|
17
|
+
fpm_script: [], fpm_config_files: {}, fpm_files: {},
|
18
|
+
fpm_conflicts: [], fpm_replaces: {}, fpm_provides: [],
|
19
|
+
fpm_depends: [], fpm_description: nil, fpm_url: nil, **kwargs, &blk)
|
20
|
+
super(builder, image, **kwargs) do
|
21
|
+
@fpm_script = fpm_script
|
22
|
+
@fpm_config_files = fpm_config_files
|
23
|
+
@fpm_files = fpm_files
|
24
|
+
@fpm_conflicts = fpm_conflicts
|
25
|
+
@fpm_replaces = fpm_replaces
|
26
|
+
@fpm_provides = fpm_provides
|
27
|
+
@fpm_depends = fpm_depends
|
28
|
+
@fpm_description = fpm_description
|
29
|
+
@fpm_url = fpm_url
|
30
|
+
|
31
|
+
yield if block_given?
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
def image_work_path
|
36
|
+
builder.work_path.join('fpm').join(package_name).join(package_version).join(name)
|
37
|
+
end
|
7
38
|
|
8
|
-
def
|
9
|
-
|
39
|
+
def package_version_tag_param_name
|
40
|
+
:package_version
|
41
|
+
end
|
42
|
+
|
43
|
+
def fpm_config_files_expand
|
44
|
+
_expand_files_directive fpm_config_files
|
45
|
+
end
|
46
|
+
|
47
|
+
def fpm_files_expand
|
48
|
+
_expand_files_directive fpm_files
|
49
|
+
end
|
10
50
|
|
11
|
-
|
12
|
-
|
13
|
-
|
51
|
+
def _expand_files_directive(files)
|
52
|
+
files.reduce({}) do |res, (dst, src)|
|
53
|
+
if src.is_a? Array
|
54
|
+
res.merge src.map {|src_file| [File.join(dst, src_file), src_file]}.to_h
|
55
|
+
elsif src.nil?
|
56
|
+
res.merge dst => File.basename(dst)
|
57
|
+
else
|
58
|
+
res.merge dst => src
|
59
|
+
end
|
60
|
+
end
|
14
61
|
end
|
15
62
|
end # Fpm
|
16
63
|
end # Target
|
@@ -1,6 +1,15 @@
|
|
1
1
|
module Buildizer
|
2
2
|
module Target
|
3
3
|
class Native < Base
|
4
|
+
include PackageNameMod
|
5
|
+
|
6
|
+
def image_work_path
|
7
|
+
builder.work_path.join('native').join(package_name).join(package_version).join(name)
|
8
|
+
end
|
9
|
+
|
10
|
+
def package_version_tag_param_name
|
11
|
+
:package_version
|
12
|
+
end
|
4
13
|
end # Native
|
5
14
|
end # Target
|
6
15
|
end # Buildizer
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module Buildizer
|
2
|
+
module Target
|
3
|
+
module PackageNameMod
|
4
|
+
def package_upstream_version
|
5
|
+
package_version.split('-')[0]
|
6
|
+
end
|
7
|
+
|
8
|
+
def package_release
|
9
|
+
package_version.split('-')[1]
|
10
|
+
end
|
11
|
+
|
12
|
+
def container_package_name
|
13
|
+
"#{package_name}-#{package_upstream_version}"
|
14
|
+
end
|
15
|
+
end # PackageNameMod
|
16
|
+
end # Target
|
17
|
+
end # Buildizer
|
@@ -0,0 +1,33 @@
|
|
1
|
+
module Buildizer
|
2
|
+
module Target
|
3
|
+
class Patch < Base
|
4
|
+
attr_reader :patch
|
5
|
+
attr_reader :patch_version
|
6
|
+
|
7
|
+
def initialize(builder, image, patch: [], patch_version: nil, **kwargs, &blk)
|
8
|
+
super(builder, image, **kwargs) do
|
9
|
+
@patch = patch
|
10
|
+
@patch_version = patch_version
|
11
|
+
|
12
|
+
yield if block_given?
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
def patch_version
|
17
|
+
@patch_version.nil? ? nil : @patch_version.to_s
|
18
|
+
end
|
19
|
+
|
20
|
+
def image_work_path
|
21
|
+
builder.work_path.join('patch').join(package_name).join(patch_version).join(name)
|
22
|
+
end
|
23
|
+
|
24
|
+
def container_package_name
|
25
|
+
"#{package_name}-#{patch_version}"
|
26
|
+
end
|
27
|
+
|
28
|
+
def package_version_tag_param_name
|
29
|
+
:patch_version
|
30
|
+
end
|
31
|
+
end # Patch
|
32
|
+
end # Target
|
33
|
+
end # Buildizer
|
data/lib/buildizer/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: buildizer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- flant
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-04-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: thor
|
@@ -223,6 +223,7 @@ files:
|
|
223
223
|
- lib/buildizer/builder/base.rb
|
224
224
|
- lib/buildizer/builder/fpm.rb
|
225
225
|
- lib/buildizer/builder/native.rb
|
226
|
+
- lib/buildizer/builder/patch.rb
|
226
227
|
- lib/buildizer/cli.rb
|
227
228
|
- lib/buildizer/docker.rb
|
228
229
|
- lib/buildizer/error.rb
|
@@ -234,12 +235,15 @@ files:
|
|
234
235
|
- lib/buildizer/image/ubuntu.rb
|
235
236
|
- lib/buildizer/image/ubuntu1204.rb
|
236
237
|
- lib/buildizer/image/ubuntu1404.rb
|
238
|
+
- lib/buildizer/image/ubuntu1604.rb
|
237
239
|
- lib/buildizer/packager.rb
|
238
240
|
- lib/buildizer/refine.rb
|
239
241
|
- lib/buildizer/target.rb
|
240
242
|
- lib/buildizer/target/base.rb
|
241
243
|
- lib/buildizer/target/fpm.rb
|
242
244
|
- lib/buildizer/target/native.rb
|
245
|
+
- lib/buildizer/target/package_name_mod.rb
|
246
|
+
- lib/buildizer/target/patch.rb
|
243
247
|
- lib/buildizer/version.rb
|
244
248
|
homepage: https://github.com/flant/buildizer
|
245
249
|
licenses:
|