avmtrf1-tools 0.10.1 → 0.11.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: 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