avmtrf1-tools 0.10.1 → 0.11.0

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b97bd2dbda51afd9d2311e4fc3669f97fb3e8be3a66b9c329e098d40e430bcc3
4
- data.tar.gz: ba3d2f210b0a12fe6f88a6392866dab5b0d481126ebd821ae8cc1395a3c0712c
3
+ metadata.gz: 80e87ac18f4765f2114777fb4758b71b8c10496b69c101b01877471d91b66dc5
4
+ data.tar.gz: 8ec4eaaacc86d8d31d27cd50e406a18eee0ceb8afcc8c3218727d32c09e9ab02
5
5
  SHA512:
6
- metadata.gz: ab811f9fc8d33aaa7ab6f8c38b0c88693e46f3fa9e69be22c0b2be02c9b6cda8ad5578c167240ad174994abb7b1882718ed972cca7404f6fd447e229eb0826a4
7
- data.tar.gz: 161a1ec73b89efee31d64ed926fcb3142088102d681a8d084efd26982164eb6c7afb94c5f579302e16db713ab802d65a5d8feb1a8e1c6def3d075582eb5430d6
6
+ metadata.gz: d8620e482183ecaf7ab59111e1e75d017604fbbc78476b8ba3f0603bcd7ae2304462eec2be419d1fbdbdf0961771cf182b2f414c2eb878995423be319eaf3856
7
+ data.tar.gz: 0555a4cb36cdafa3abf6f33d1a51fe5fd9c71a28f4fd4c68a6209b95d4b3750bca1c9ea7614a2a840648e7a0ae020f6c325a6198191bae2138c4cd9f00365b8b
data/lib/avmtrf1.rb CHANGED
@@ -1,22 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'eac_ruby_utils/require_sub'
4
+
3
5
  module Avmtrf1
4
- require 'avmtrf1/active_directory'
5
- require 'avmtrf1/ad_user'
6
- require 'avmtrf1/configs'
7
- require 'avmtrf1/default_esosti'
8
- require 'avmtrf1/default_jira'
9
- require 'avmtrf1/default_redmine'
10
- require 'avmtrf1/fs_cache'
11
- require 'avmtrf1/git'
12
- require 'avmtrf1/ini'
13
- require 'avmtrf1/issues'
14
- require 'avmtrf1/jira'
15
- require 'avmtrf1/oracle'
16
- require 'avmtrf1/patches'
17
- require 'avmtrf1/red'
18
- require 'avmtrf1/redmine'
19
- require 'avmtrf1/rest_provider'
20
- require 'avmtrf1/result'
21
- require 'avmtrf1/tools'
6
+ ::EacRubyUtils.require_sub(__FILE__)
22
7
  end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_ruby_utils/require_sub'
4
+
5
+ module Avmtrf1
6
+ module Docker
7
+ ::EacRubyUtils.require_sub(__FILE__)
8
+ end
9
+ end
@@ -0,0 +1,46 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_ruby_utils/core_ext'
4
+ require 'avmtrf1/executables'
5
+ require 'avmtrf1/template'
6
+
7
+ module Avmtrf1
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)
43
+ end
44
+ end
45
+ end
46
+ end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avmtrf1
4
+ module Executables
5
+ class << self
6
+ def env
7
+ ::EacRubyUtils::Envs.local
8
+ end
9
+
10
+ def docker
11
+ @docker ||= env.executable('docker', '--version')
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_ruby_utils/require_sub'
4
+
5
+ module Avmtrf1
6
+ module Php
7
+ ::EacRubyUtils.require_sub(__FILE__)
8
+ end
9
+ end
@@ -0,0 +1,52 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_ruby_utils/core_ext'
4
+ require 'rubygems'
5
+ require 'avmtrf1/docker/image'
6
+
7
+ module Avmtrf1
8
+ module Php
9
+ class DockerImage < ::Avmtrf1::Docker::Image
10
+ MCRYPT_INSTALL_GREATER_EQUAL_7_2 = <<~DOCKERFILE
11
+ RUN pecl install mcrypt
12
+ RUN echo extension=mcrypt.so > "$PHP_INI_DIR/conf.d/mcrypt.ini"
13
+ DOCKERFILE
14
+
15
+ MCRYPT_INSTALL_LESSER_7_2 = <<~DOCKERFILE
16
+ RUN docker-php-ext-install mcrypt
17
+ DOCKERFILE
18
+
19
+ enable_simple_cache
20
+ common_constructor :registry_name, :version
21
+
22
+ def tag
23
+ "#{registry_name}:php-#{version}"
24
+ end
25
+
26
+ def template_dir
27
+ ::Avmtrf1.template('avmtrf1/php/docker_image')
28
+ end
29
+
30
+ def source_package_url
31
+ last_update_release.source_package_url
32
+ end
33
+
34
+ def mcrypt_install
35
+ if ::Gem::Version.new(version) >= ::Gem::Version.new('7.2')
36
+ MCRYPT_INSTALL_GREATER_EQUAL_7_2
37
+ else
38
+ MCRYPT_INSTALL_LESSER_7_2
39
+ end
40
+ 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
+ end
51
+ end
52
+ end
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'avm/templates/directory'
4
+ require 'avm/templates/file'
5
+
6
+ module Avmtrf1
7
+ class << self
8
+ def templates_root
9
+ ::File.expand_path('../../template', __dir__)
10
+ end
11
+
12
+ def template(subpath)
13
+ path = ::File.join(templates_root, subpath)
14
+ return ::Avm::Templates::Directory.new(path) if ::File.directory?(path)
15
+ return ::Avm::Templates::File.new(path) if ::File.file?(path)
16
+
17
+ raise "Template \"#{path}\" not found"
18
+ end
19
+ end
20
+ end
@@ -2,16 +2,13 @@
2
2
 
3
3
  require 'aranha/selenium/driver_factory/base'
4
4
  require 'eac_ruby_utils/console/docopt_runner'
5
- require 'avmtrf1/tools/runner/check_point'
6
- require 'avmtrf1/tools/runner/esosti'
7
- require 'avmtrf1/tools/runner/forponto'
8
- require 'avmtrf1/tools/runner/git'
9
- require 'avmtrf1/tools/runner/oracle'
10
- require 'avmtrf1/tools/runner/red'
5
+ require 'eac_ruby_utils/require_sub'
11
6
 
12
7
  module Avmtrf1
13
8
  module Tools
14
9
  class Runner < ::EacRubyUtils::Console::DocoptRunner
10
+ ::EacRubyUtils.require_sub(__FILE__)
11
+
15
12
  DOC = <<~DOCOPT
16
13
  Utilidades para AVM-TRF1 (http://redmine.trf1.gov.br/projects/avm-trf1).
17
14
 
@@ -0,0 +1,25 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_ruby_utils/console/docopt_runner'
4
+ require 'eac_ruby_utils/require_sub'
5
+
6
+ module Avmtrf1
7
+ module Tools
8
+ class Runner < ::EacRubyUtils::Console::DocoptRunner
9
+ class Php < ::EacRubyUtils::Console::DocoptRunner
10
+ ::EacRubyUtils.require_sub(__FILE__)
11
+
12
+ DOC = <<~DOCOPT
13
+ Utilidades para PHP.
14
+
15
+ Usage:
16
+ __PROGRAM__ [options] __SUBCOMMANDS__
17
+ __PROGRAM__ -h | --help
18
+
19
+ Options:
20
+ -h --help Mostra esta ajuda.
21
+ DOCOPT
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,69 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_ruby_utils/console/docopt_runner'
4
+ require 'eac_ruby_utils/core_ext'
5
+ require 'avmtrf1/php/docker_image'
6
+
7
+ module Avmtrf1
8
+ module Tools
9
+ class Runner < ::EacRubyUtils::Console::DocoptRunner
10
+ class Php < ::EacRubyUtils::Console::DocoptRunner
11
+ class Docker < ::EacRubyUtils::Console::DocoptRunner
12
+ enable_console_speaker
13
+
14
+ DOC = <<~DOCOPT
15
+ Constrói imagens Docker para PHP.
16
+
17
+ Usage:
18
+ __PROGRAM__ [options] [<version>...]
19
+ __PROGRAM__ -h | --help
20
+
21
+ Options:
22
+ -h --help Mostra esta ajuda.
23
+ -d --default Adiciona as versões padrão.
24
+ -n --registry-name=<registry-name> Nome do registro.
25
+ -p --push Envia a imagem.
26
+ DOCOPT
27
+
28
+ def run
29
+ infov 'Versions to build', versions_to_s
30
+ versions.each do |version|
31
+ process_version(version)
32
+ end
33
+ end
34
+
35
+ def default_versions
36
+ ::Avmtrf1.configs.read_entry('php.default_versions').split(',').map(&:strip)
37
+ .reject(&:blank?)
38
+ end
39
+
40
+ def versions_to_s
41
+ if versions.any?
42
+ versions.join(', ')
43
+ else
44
+ '-- NONE --'
45
+ end
46
+ end
47
+
48
+ def versions
49
+ (
50
+ options.fetch('<version>') +
51
+ (options.fetch('--default') ? default_versions : [])
52
+ ).uniq.sort
53
+ end
54
+
55
+ def process_version(version)
56
+ image = ::Avmtrf1::Php::DockerImage.new(registry_name, version)
57
+ infom "Building Docker image \"#{image.tag}\""
58
+ image.build
59
+ image.push if options.fetch('--push')
60
+ end
61
+
62
+ def registry_name
63
+ options.fetch('--registry-name') || ::Avmtrf1.configs.read_entry('docker.registry.name')
64
+ end
65
+ end
66
+ end
67
+ end
68
+ end
69
+ end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Avmtrf1
4
4
  module Tools
5
- VERSION = '0.10.1'
5
+ VERSION = '0.11.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.10.1
4
+ version: 0.11.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-10-25 00:00:00.000000000 Z
11
+ date: 2019-11-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aranha-parsers
@@ -16,54 +16,54 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '0.1'
19
+ version: '0.2'
20
20
  - - ">="
21
21
  - !ruby/object:Gem::Version
22
- version: 0.1.1
22
+ version: 0.2.1
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
26
26
  requirements:
27
27
  - - "~>"
28
28
  - !ruby/object:Gem::Version
29
- version: '0.1'
29
+ version: '0.2'
30
30
  - - ">="
31
31
  - !ruby/object:Gem::Version
32
- version: 0.1.1
32
+ version: 0.2.1
33
33
  - !ruby/object:Gem::Dependency
34
34
  name: aranha-selenium
35
35
  requirement: !ruby/object:Gem::Requirement
36
36
  requirements:
37
37
  - - "~>"
38
38
  - !ruby/object:Gem::Version
39
- version: 0.1.0
39
+ version: '0.1'
40
+ - - ">="
41
+ - !ruby/object:Gem::Version
42
+ version: 0.1.1
40
43
  type: :runtime
41
44
  prerelease: false
42
45
  version_requirements: !ruby/object:Gem::Requirement
43
46
  requirements:
44
47
  - - "~>"
45
48
  - !ruby/object:Gem::Version
46
- version: 0.1.0
49
+ version: '0.1'
50
+ - - ">="
51
+ - !ruby/object:Gem::Version
52
+ version: 0.1.1
47
53
  - !ruby/object:Gem::Dependency
48
54
  name: avm-tools
49
55
  requirement: !ruby/object:Gem::Requirement
50
56
  requirements:
51
57
  - - "~>"
52
58
  - !ruby/object:Gem::Version
53
- version: '0.15'
54
- - - ">="
55
- - !ruby/object:Gem::Version
56
- version: 0.15.1
59
+ version: '0.20'
57
60
  type: :runtime
58
61
  prerelease: false
59
62
  version_requirements: !ruby/object:Gem::Requirement
60
63
  requirements:
61
64
  - - "~>"
62
65
  - !ruby/object:Gem::Version
63
- version: '0.15'
64
- - - ">="
65
- - !ruby/object:Gem::Version
66
- version: 0.15.1
66
+ version: '0.20'
67
67
  - !ruby/object:Gem::Dependency
68
68
  name: curb
69
69
  requirement: !ruby/object:Gem::Requirement
@@ -87,7 +87,7 @@ dependencies:
87
87
  version: '0.6'
88
88
  - - ">="
89
89
  - !ruby/object:Gem::Version
90
- version: 0.6.2
90
+ version: 0.6.4
91
91
  type: :runtime
92
92
  prerelease: false
93
93
  version_requirements: !ruby/object:Gem::Requirement
@@ -97,21 +97,21 @@ dependencies:
97
97
  version: '0.6'
98
98
  - - ">="
99
99
  - !ruby/object:Gem::Version
100
- version: 0.6.2
100
+ version: 0.6.4
101
101
  - !ruby/object:Gem::Dependency
102
102
  name: eac_ruby_utils
103
103
  requirement: !ruby/object:Gem::Requirement
104
104
  requirements:
105
105
  - - "~>"
106
106
  - !ruby/object:Gem::Version
107
- version: '0.15'
107
+ version: '0.16'
108
108
  type: :runtime
109
109
  prerelease: false
110
110
  version_requirements: !ruby/object:Gem::Requirement
111
111
  requirements:
112
112
  - - "~>"
113
113
  - !ruby/object:Gem::Version
114
- version: '0.15'
114
+ version: '0.16'
115
115
  - !ruby/object:Gem::Dependency
116
116
  name: filesize
117
117
  requirement: !ruby/object:Gem::Requirement
@@ -174,28 +174,28 @@ dependencies:
174
174
  requirements:
175
175
  - - "~>"
176
176
  - !ruby/object:Gem::Version
177
- version: 0.74.0
177
+ version: 0.76.0
178
178
  type: :development
179
179
  prerelease: false
180
180
  version_requirements: !ruby/object:Gem::Requirement
181
181
  requirements:
182
182
  - - "~>"
183
183
  - !ruby/object:Gem::Version
184
- version: 0.74.0
184
+ version: 0.76.0
185
185
  - !ruby/object:Gem::Dependency
186
186
  name: rubocop-rspec
187
187
  requirement: !ruby/object:Gem::Requirement
188
188
  requirements:
189
189
  - - "~>"
190
190
  - !ruby/object:Gem::Version
191
- version: 1.34.0
191
+ version: 1.36.0
192
192
  type: :development
193
193
  prerelease: false
194
194
  version_requirements: !ruby/object:Gem::Requirement
195
195
  requirements:
196
196
  - - "~>"
197
197
  - !ruby/object:Gem::Version
198
- version: 1.34.0
198
+ version: 1.36.0
199
199
  - !ruby/object:Gem::Dependency
200
200
  name: ruby-oci8
201
201
  requirement: !ruby/object:Gem::Requirement
@@ -230,6 +230,8 @@ files:
230
230
  - lib/avmtrf1/default_esosti.rb
231
231
  - lib/avmtrf1/default_jira.rb
232
232
  - lib/avmtrf1/default_redmine.rb
233
+ - lib/avmtrf1/docker.rb
234
+ - lib/avmtrf1/docker/image.rb
233
235
  - lib/avmtrf1/esosti.rb
234
236
  - lib/avmtrf1/esosti/entities.rb
235
237
  - lib/avmtrf1/esosti/entities/issue.rb
@@ -241,6 +243,7 @@ files:
241
243
  - lib/avmtrf1/esosti/session/login.rb
242
244
  - lib/avmtrf1/esosti/session/solicitacao.rb
243
245
  - lib/avmtrf1/esosti/session/solicitacao/main.rb
246
+ - lib/avmtrf1/executables.rb
244
247
  - lib/avmtrf1/forponto/parsers/espelho.rb
245
248
  - lib/avmtrf1/forponto/parsers/espelho/day_node.rb
246
249
  - lib/avmtrf1/forponto/parsers/espelho/methods_as_fields.rb
@@ -284,6 +287,8 @@ files:
284
287
  - lib/avmtrf1/patches.rb
285
288
  - lib/avmtrf1/patches/eac_launcher/git/base.rb
286
289
  - lib/avmtrf1/patches/inifile.rb
290
+ - lib/avmtrf1/php.rb
291
+ - lib/avmtrf1/php/docker_image.rb
287
292
  - lib/avmtrf1/red.rb
288
293
  - lib/avmtrf1/red/client.rb
289
294
  - lib/avmtrf1/red/client/authorization.xml.erb
@@ -300,6 +305,7 @@ files:
300
305
  - lib/avmtrf1/rest_provider/entity.rb
301
306
  - lib/avmtrf1/rest_provider/instance.rb
302
307
  - lib/avmtrf1/result.rb
308
+ - lib/avmtrf1/template.rb
303
309
  - lib/avmtrf1/tools.rb
304
310
  - lib/avmtrf1/tools/runner.rb
305
311
  - lib/avmtrf1/tools/runner/check_point.rb
@@ -312,6 +318,8 @@ files:
312
318
  - lib/avmtrf1/tools/runner/git/push_large.rb
313
319
  - lib/avmtrf1/tools/runner/oracle.rb
314
320
  - lib/avmtrf1/tools/runner/oracle/source_get.rb
321
+ - lib/avmtrf1/tools/runner/php.rb
322
+ - lib/avmtrf1/tools/runner/php/docker.rb
315
323
  - lib/avmtrf1/tools/runner/red.rb
316
324
  - lib/avmtrf1/tools/version.rb
317
325
  homepage: http://redmine.trf1.gov.br/projects/avm-trf1