avmtrf1-tools 0.13.1 → 0.14.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1fa3389e4e84740cbfd2cb9cf14b9b862adbecbaf6c2d821245738c25757274a
4
- data.tar.gz: 1f2e0ff3ff7bc1ad21cbc8a032fb9b1e5235c26dd94e05984a09b12b7b15a5c5
3
+ metadata.gz: d1b7d9505f6acda9e3f2c0c173414bc0c5047fce4423c19a59eb3fc09a572117
4
+ data.tar.gz: c6c1b56d6d56a20f8773ab8160cd30eb736ce5033c1ada1181c86a2d8daa405e
5
5
  SHA512:
6
- metadata.gz: 7a1e4d91393d3e7148bd32179569485e5a68f28d4aca93d952d5979690992c715260225a35b77f4b510f66cc519beed0f933917ff568007779d99bc7824c1b64
7
- data.tar.gz: 2c155e8f0e720b17d74a10cb4c68b60afe8c5e3f83fd7cdc72960cff69a50c90f576c70ece78876b426f610205efed550c76e79be0a3260deb1b7952ca72b042
6
+ metadata.gz: b86fee54a530f4cb419333dde092fa6b8ecb815dd0717f5747588efc371874d2a6f30c46b151afa0604dfa27bd2332e1b24391657a3e8a282b8cd4c7ab9d76fd
7
+ data.tar.gz: a479ecc2d4de7bee391984f620818904d3c91d1fe7e8abbcc4f26b26e2ee9fe54838f3215b1937146c5876d9efe27ec7f542f13789576081d53210f03701945c
@@ -1,45 +1,14 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'eac_ruby_utils/core_ext'
4
- require 'avmtrf1/executables'
4
+ require 'avm/docker/image'
5
5
  require 'avmtrf1/template'
6
6
 
7
7
  module Avmtrf1
8
8
  module Docker
9
- class Image
10
- def build
11
- on_build_dir do
12
- template_dir.apply(self, build_dir)
13
- run_docker_build
14
- end
15
- end
16
-
17
- def push
18
- ::Avmtrf1::Executables.docker.command.append(['push', tag]).system!
19
- end
20
-
21
- def read_entry(path, _options = {})
22
- method = path.gsub('.', '_')
23
- return send(method) if respond_to?(path, true)
24
-
25
- raise "Method \"#{method}\" not found for entry \"#{path}\""
26
- end
27
-
28
- private
29
-
30
- attr_reader :build_dir
31
-
32
- def run_docker_build
33
- ::Avmtrf1::Executables.docker.command.append(
34
- ['build', '-t', tag, build_dir]
35
- ).system!
36
- end
37
-
38
- def on_build_dir
39
- @build_dir = ::Dir.mktmpdir
40
- yield
41
- ensure
42
- ::FileUtils.rm_rf(@build_dir)
9
+ class Image < ::Avm::Docker::Image
10
+ def generator_version
11
+ ::Avmtrf1::Tools::VERSION
43
12
  end
44
13
  end
45
14
  end
@@ -17,36 +17,29 @@ module Avmtrf1
17
17
  DOCKERFILE
18
18
 
19
19
  enable_simple_cache
20
- common_constructor :registry_name, :version
21
20
 
22
- def tag
23
- "#{registry_name}:php-#{version}"
21
+ attr_reader :php_version
22
+
23
+ def initialize(registry, php_version)
24
+ super(registry)
25
+ @php_version = php_version
24
26
  end
25
27
 
26
- def template_dir
27
- ::Avmtrf1.template('avmtrf1/php/docker_image')
28
+ def stereotype_tag
29
+ "php-#{php_version}"
28
30
  end
29
31
 
30
- def source_package_url
31
- last_update_release.source_package_url
32
+ def template_dir
33
+ ::Avmtrf1.template('avmtrf1/php/docker_image')
32
34
  end
33
35
 
34
36
  def mcrypt_install
35
- if ::Gem::Version.new(version) >= ::Gem::Version.new('7.2')
37
+ if ::Gem::Version.new(php_version) >= ::Gem::Version.new('7.2')
36
38
  MCRYPT_INSTALL_GREATER_EQUAL_7_2
37
39
  else
38
40
  MCRYPT_INSTALL_LESSER_7_2
39
41
  end
40
42
  end
41
-
42
- private
43
-
44
- def last_update_release_uncached
45
- result = ::Avmtrf1::Php::Release.all.select { |r| r.to_s.start_with?("#{version}.") }.max
46
- return result if result
47
-
48
- raise "No releases found for version \"#{version}\""
49
- end
50
43
  end
51
44
  end
52
45
  end
@@ -2,22 +2,5 @@
2
2
 
3
3
  require 'eac_ruby_utils/templates/searcher'
4
4
 
5
- module Avmtrf1
6
- class << self
7
- def templates_root
8
- ::File.expand_path('../../template', __dir__)
9
- end
10
-
11
- def template_searcher
12
- @template_searcher ||= begin
13
- r = ::EacRubyUtils::Templates::Searcher.new
14
- r.included_paths << templates_root
15
- r
16
- end
17
- end
18
-
19
- def template(subpath)
20
- template_searcher.template(subpath)
21
- end
22
- end
23
- end
5
+ ::EacRubyUtils::Templates::Searcher.default.included_paths <<
6
+ ::File.expand_path('../../template', __dir__)
@@ -1,5 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'avm/docker/registry'
3
4
  require 'eac_ruby_utils/console/docopt_runner'
4
5
  require 'eac_ruby_utils/core_ext'
5
6
  require 'avmtrf1/php/docker_image'
@@ -10,6 +11,7 @@ module Avmtrf1
10
11
  class Php < ::EacRubyUtils::Console::DocoptRunner
11
12
  class Docker < ::EacRubyUtils::Console::DocoptRunner
12
13
  enable_console_speaker
14
+ enable_simple_cache
13
15
 
14
16
  DOC = <<~DOCOPT
15
17
  Constrói imagens Docker para PHP.
@@ -23,6 +25,8 @@ module Avmtrf1
23
25
  -d --default Adiciona as versões padrão.
24
26
  -n --registry-name=<registry-name> Nome do registro.
25
27
  -p --push Envia a imagem.
28
+ -S --no-snapshot Não adiciona "-snapshot" no nome da imagem.
29
+ -V --no-version Não adiciona a versão do gerador no nome da imagem.
26
30
  DOCOPT
27
31
 
28
32
  def run
@@ -53,7 +57,7 @@ module Avmtrf1
53
57
  end
54
58
 
55
59
  def process_version(version)
56
- image = ::Avmtrf1::Php::DockerImage.new(registry_name, version)
60
+ image = build_image(version)
57
61
  infom "Building Docker image \"#{image.tag}\""
58
62
  image.build
59
63
  image.push if options.fetch('--push')
@@ -62,6 +66,17 @@ module Avmtrf1
62
66
  def registry_name
63
67
  options.fetch('--registry-name') || ::Avmtrf1.configs.read_entry('docker.registry.name')
64
68
  end
69
+
70
+ def registry_uncached
71
+ ::Avm::Docker::Registry.new(registry_name)
72
+ end
73
+
74
+ def build_image(php_version)
75
+ r = ::Avmtrf1::Php::DockerImage.new(registry, php_version)
76
+ r.send('version=', !options.fetch('--no-version'))
77
+ r.snapshot = !options.fetch('--no-snapshot')
78
+ r
79
+ end
65
80
  end
66
81
  end
67
82
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Avmtrf1
4
4
  module Tools
5
- VERSION = '0.13.1'
5
+ VERSION = '0.14.0'
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: avmtrf1-tools
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.13.1
4
+ version: 0.14.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Eduardo H. Bogoni
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-12-05 00:00:00.000000000 Z
11
+ date: 2019-12-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aranha-parsers