avmtrf1-tools 0.31.2 → 0.33.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (74) hide show
  1. checksums.yaml +4 -4
  2. data/lib/avmtrf1/active_directory/user.rb +3 -3
  3. data/lib/avmtrf1/core_ext.rb +4 -0
  4. data/lib/avmtrf1/default_jira.rb +2 -2
  5. data/lib/avmtrf1/executables.rb +10 -2
  6. data/lib/avmtrf1/git/cached_repository.rb +2 -2
  7. data/lib/avmtrf1/git/issue_on_repository.rb +2 -2
  8. data/lib/avmtrf1/git/push_large.rb +4 -4
  9. data/lib/avmtrf1/git/push_large/lfs_commit.rb +5 -10
  10. data/lib/avmtrf1/git/push_large/lfs_commit/cache.rb +19 -0
  11. data/lib/avmtrf1/git/push_large/lfs_commit/checkout_previous_revision.rb +35 -0
  12. data/lib/avmtrf1/git/push_large/lfs_commit/commit_changes.rb +48 -0
  13. data/lib/avmtrf1/git/push_large/lfs_commit/helpers.rb +29 -0
  14. data/lib/avmtrf1/git/push_large/lfs_commit/pick_source_revision.rb +103 -0
  15. data/lib/avmtrf1/git/push_large/lfs_commit/push.rb +90 -0
  16. data/lib/avmtrf1/git/push_large/lfs_commit/track_large_files.rb +53 -0
  17. data/lib/avmtrf1/git/push_large/source_commit.rb +4 -7
  18. data/lib/avmtrf1/git/push_large/source_commit/push.rb +42 -0
  19. data/lib/avmtrf1/inventario_sistemas/site_build/html_page_base.rb +1 -1
  20. data/lib/avmtrf1/openvpn/config/builder.rb +59 -0
  21. data/lib/avmtrf1/openvpn/config/parser.rb +20 -0
  22. data/lib/avmtrf1/openvpn/config/parser/builder.rb +62 -0
  23. data/lib/avmtrf1/openvpn/config/parser/line.rb +47 -0
  24. data/lib/avmtrf1/openvpn/config/parser/simple.rb +27 -0
  25. data/lib/avmtrf1/openvpn/config/parser/tag.rb +39 -0
  26. data/lib/avmtrf1/patches.rb +3 -0
  27. data/lib/avmtrf1/patches/avm.rb +4 -0
  28. data/lib/avmtrf1/patches/avm/git.rb +4 -0
  29. data/lib/avmtrf1/patches/avm/git/issue.rb +4 -0
  30. data/lib/avmtrf1/patches/avm/launcher.rb +4 -0
  31. data/lib/avmtrf1/patches/avm/launcher/git.rb +4 -0
  32. data/lib/avmtrf1/patches/avm/launcher/git/base.rb +46 -0
  33. data/lib/avmtrf1/red/helper.rb +2 -2
  34. data/lib/avmtrf1/template.rb +2 -2
  35. data/lib/avmtrf1/tools/application.rb +13 -0
  36. data/lib/avmtrf1/tools/runner.rb +18 -25
  37. data/lib/avmtrf1/tools/runner/check_point.rb +8 -14
  38. data/lib/avmtrf1/tools/runner/check_point/login.rb +7 -20
  39. data/lib/avmtrf1/tools/runner/esosti.rb +9 -21
  40. data/lib/avmtrf1/tools/runner/esosti/changed.rb +10 -23
  41. data/lib/avmtrf1/tools/runner/esosti/fetch.rb +10 -23
  42. data/lib/avmtrf1/tools/runner/esosti/request.rb +18 -30
  43. data/lib/avmtrf1/tools/runner/forponto.rb +14 -24
  44. data/lib/avmtrf1/tools/runner/forponto/espelho.rb +12 -22
  45. data/lib/avmtrf1/tools/runner/forponto/marcacoes.rb +8 -19
  46. data/lib/avmtrf1/tools/runner/forponto/resumos.rb +8 -20
  47. data/lib/avmtrf1/tools/runner/forponto/saldo.rb +11 -22
  48. data/lib/avmtrf1/tools/runner/git.rb +3 -5
  49. data/lib/avmtrf1/tools/runner/git/issues_check.rb +8 -19
  50. data/lib/avmtrf1/tools/runner/git/push_large.rb +28 -19
  51. data/lib/avmtrf1/tools/runner/inventario_sistemas.rb +7 -9
  52. data/lib/avmtrf1/tools/runner/openvpn.rb +91 -0
  53. data/lib/avmtrf1/tools/runner/oracle.rb +16 -23
  54. data/lib/avmtrf1/tools/runner/oracle/query.rb +10 -14
  55. data/lib/avmtrf1/tools/runner/oracle/source_get.rb +18 -19
  56. data/lib/avmtrf1/tools/runner/oracle/user_clear.rb +8 -16
  57. data/lib/avmtrf1/tools/runner/php.rb +8 -15
  58. data/lib/avmtrf1/tools/runner/php/docker.rb +21 -31
  59. data/lib/avmtrf1/tools/runner/red.rb +22 -26
  60. data/lib/avmtrf1/tools/runner/trf1_dspace_base0.rb +10 -19
  61. data/lib/avmtrf1/tools/runner/trf1_dspace_base0/deploy.rb +2 -2
  62. data/lib/avmtrf1/tools/version.rb +1 -1
  63. data/template/avmtrf1/php/docker_image/Dockerfile.template +4 -1
  64. metadata +30 -93
  65. data/lib/avmtrf1/configs.rb +0 -24
  66. data/lib/avmtrf1/git/push_large/lfs_commit/_00_checkout_previous_revision.rb +0 -33
  67. data/lib/avmtrf1/git/push_large/lfs_commit/_01_cherry_pick_source_revision.rb +0 -89
  68. data/lib/avmtrf1/git/push_large/lfs_commit/_02_track_large_files.rb +0 -51
  69. data/lib/avmtrf1/git/push_large/lfs_commit/_03_commit_changes.rb +0 -46
  70. data/lib/avmtrf1/git/push_large/lfs_commit/_04_push.rb +0 -88
  71. data/lib/avmtrf1/git/push_large/lfs_commit/_cache.rb +0 -17
  72. data/lib/avmtrf1/git/push_large/lfs_commit/_helpers.rb +0 -27
  73. data/lib/avmtrf1/git/push_large/source_commit/_push.rb +0 -40
  74. data/lib/avmtrf1/patches/eac_launcher/git/base.rb +0 -43
@@ -1,27 +1,17 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'eac_ruby_utils/console/docopt_runner'
4
- require 'eac_ruby_utils/console/speaker'
5
- require 'eac_ruby_utils/simple_cache'
3
+ require 'avmtrf1/core_ext'
6
4
 
7
5
  module Avmtrf1
8
6
  module Tools
9
- class Runner < ::EacRubyUtils::Console::DocoptRunner
10
- class Forponto < ::EacRubyUtils::Console::DocoptRunner
11
- class Espelho < ::EacRubyUtils::Console::DocoptRunner
12
- include ::EacRubyUtils::SimpleCache
13
- include ::EacRubyUtils::Console::Speaker
14
-
15
- DOC = <<~DOCOPT
16
- Recupera e trata dados do Forponto.
17
-
18
- Usage:
19
- __PROGRAM__ [options] <year> <month>
20
- __PROGRAM__ -h | --help
21
-
22
- Options:
23
- -h --help Show this screen.
24
- DOCOPT
7
+ class Runner
8
+ class Forponto
9
+ class Espelho
10
+ runner_with :help do
11
+ desc 'Recupera e trata dados do Forponto.'
12
+ pos_arg :year
13
+ pos_arg :month
14
+ end
25
15
 
26
16
  def run
27
17
  infov 'Start date', user_month.start_date
@@ -36,15 +26,15 @@ module Avmtrf1
36
26
  end
37
27
 
38
28
  def user_month_uncached
39
- context(:user).month(year, month)
29
+ runner_context.call(:user).month(year, month)
40
30
  end
41
31
 
42
32
  def year
43
- options.fetch('<year>').to_i
33
+ parsed.year.to_i
44
34
  end
45
35
 
46
36
  def month
47
- options.fetch('<month>').to_i
37
+ parsed.month.to_i
48
38
  end
49
39
 
50
40
  def date(day)
@@ -1,27 +1,16 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'avmtrf1/forponto/user/day_registers'
4
- require 'eac_ruby_utils/console/docopt_runner'
5
- require 'eac_ruby_utils/core_ext'
4
+ require 'avmtrf1/core_ext'
6
5
 
7
6
  module Avmtrf1
8
7
  module Tools
9
- class Runner < ::EacRubyUtils::Console::DocoptRunner
10
- class Forponto < ::EacRubyUtils::Console::DocoptRunner
11
- class Marcacoes < ::EacRubyUtils::Console::DocoptRunner
12
- enable_console_speaker
13
- enable_simple_cache
14
-
15
- DOC = <<~DOCOPT
16
- Mostra marcações Forponto do dia.
17
-
18
- Usage:
19
- __PROGRAM__ [options]
20
- __PROGRAM__ -h | --help
21
-
22
- Options:
23
- -h --help Show this screen.
24
- DOCOPT
8
+ class Runner
9
+ class Forponto
10
+ class Marcacoes
11
+ runner_with :help do
12
+ desc 'Mostra marcações Forponto do dia.'
13
+ end
25
14
 
26
15
  def run
27
16
  infov 'Date', day_registers.date
@@ -34,7 +23,7 @@ module Avmtrf1
34
23
  private
35
24
 
36
25
  def day_registers_uncached
37
- ::Avmtrf1::Forponto::User::DayRegisters.new(context(:user))
26
+ ::Avmtrf1::Forponto::User::DayRegisters.new(runner_context.call(:user))
38
27
  end
39
28
  end
40
29
  end
@@ -1,27 +1,15 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'eac_ruby_utils/console/docopt_runner'
4
- require 'eac_ruby_utils/console/speaker'
5
- require 'eac_ruby_utils/simple_cache'
3
+ require 'avmtrf1/core_ext'
6
4
 
7
5
  module Avmtrf1
8
6
  module Tools
9
- class Runner < ::EacRubyUtils::Console::DocoptRunner
10
- class Forponto < ::EacRubyUtils::Console::DocoptRunner
11
- class Resumos < ::EacRubyUtils::Console::DocoptRunner
12
- include ::EacRubyUtils::SimpleCache
13
- include ::EacRubyUtils::Console::Speaker
14
-
15
- DOC = <<~DOCOPT
16
- Mostra os resumos.
17
-
18
- Usage:
19
- __PROGRAM__ [options]
20
- __PROGRAM__ -h | --help
21
-
22
- Options:
23
- -h --help Show this screen.
24
- DOCOPT
7
+ class Runner
8
+ class Forponto
9
+ class Resumos
10
+ runner_with :help do
11
+ desc 'Mostra os resumos.'
12
+ end
25
13
 
26
14
  def run
27
15
  sorted_months.each do |month|
@@ -32,7 +20,7 @@ module Avmtrf1
32
20
  def head_month
33
21
  today = ::Date.today
34
22
  date = ::Date.civil(today.year, today.month, 1)
35
- context(:user).month(date.year, date.month)
23
+ runner_context.call(:user).month(date.year, date.month)
36
24
  end
37
25
 
38
26
  def show_month(month)
@@ -1,28 +1,17 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'eac_ruby_utils/console/docopt_runner'
4
- require 'eac_ruby_utils/console/speaker'
5
- require 'eac_ruby_utils/simple_cache'
3
+ require 'avmtrf1/core_ext'
4
+ require 'avmtrf1/forponto/user/balance'
6
5
 
7
6
  module Avmtrf1
8
7
  module Tools
9
- class Runner < ::EacRubyUtils::Console::DocoptRunner
10
- class Forponto < ::EacRubyUtils::Console::DocoptRunner
11
- class Saldo < ::EacRubyUtils::Console::DocoptRunner
12
- include ::EacRubyUtils::SimpleCache
13
- include ::EacRubyUtils::Console::Speaker
14
-
15
- DOC = <<~DOCOPT
16
- Calcula saldo de horas atual.
17
-
18
- Usage:
19
- __PROGRAM__ [options]
20
- __PROGRAM__ -h | --help
21
-
22
- Options:
23
- -h --help Show this screen.
24
- -d --details Show details.
25
- DOCOPT
8
+ class Runner
9
+ class Forponto
10
+ class Saldo
11
+ runner_with :help do
12
+ desc 'Calcula saldo de horas atual.'
13
+ bool_opt '-d', '--details', 'Show details.'
14
+ end
26
15
 
27
16
  def run
28
17
  balance.months_balances.each do |mb|
@@ -47,7 +36,7 @@ module Avmtrf1
47
36
 
48
37
  def show_month_attr_balance(mba, label)
49
38
  infov " * #{label}", minutes_to_s(mba.initial_value)
50
- return unless options.fetch('--details')
39
+ return unless parsed.details?
51
40
 
52
41
  show_month_withdrawals(mba)
53
42
  show_month_requests(mba)
@@ -93,7 +82,7 @@ module Avmtrf1
93
82
  end
94
83
 
95
84
  def balance_uncached
96
- ::Avmtrf1::Forponto::User::Balance.new(context(:user))
85
+ ::Avmtrf1::Forponto::User::Balance.new(runner_context.call(:user))
97
86
  end
98
87
  end
99
88
  end
@@ -1,15 +1,13 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'avm/tools/runner/git'
4
- require 'eac_ruby_utils/console/docopt_runner'
5
- require 'avmtrf1/tools/runner/git/issues_check'
6
- require 'avmtrf1/tools/runner/git/push_large'
7
- require 'avmtrf1/patches/avm/git/issue/complete'
4
+ require 'avmtrf1/core_ext'
8
5
 
9
6
  module Avmtrf1
10
7
  module Tools
11
- class Runner < ::EacRubyUtils::Console::DocoptRunner
8
+ class Runner
12
9
  class Git < ::Avm::Tools::Runner::Git
10
+ require_sub __FILE__
13
11
  end
14
12
  end
15
13
  end
@@ -1,28 +1,17 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'eac_ruby_utils/console/docopt_runner'
4
- require 'eac_ruby_utils/console/speaker'
5
- require 'eac_ruby_utils/simple_cache'
3
+ require 'avmtrf1/core_ext'
6
4
  require 'avmtrf1/git/cached_repository'
7
5
 
8
6
  module Avmtrf1
9
7
  module Tools
10
- class Runner < ::EacRubyUtils::Console::DocoptRunner
8
+ class Runner
11
9
  class Git < ::Avm::Tools::Runner::Git
12
- class IssuesCheck < ::EacRubyUtils::Console::DocoptRunner
13
- include ::EacRubyUtils::SimpleCache
14
- include ::EacRubyUtils::Console::Speaker
15
-
16
- DOC = <<~DOCOPT
17
- Confronta situação das demandas no Git com a situação nos trackers.
18
-
19
- Usage:
20
- __PROGRAM__ [options] <git-url>
21
- __PROGRAM__ -h | --help
22
-
23
- Options:
24
- -h --help Mostra esta ajuda.
25
- DOCOPT
10
+ class IssuesCheck
11
+ runner_with :help do
12
+ desc 'Confronta situação das demandas no Git com a situação nos trackers.'
13
+ pos_arg :git_url
14
+ end
26
15
 
27
16
  def run
28
17
  infov 'Repository path', git_url
@@ -34,7 +23,7 @@ module Avmtrf1
34
23
  private
35
24
 
36
25
  def git_url
37
- options.fetch('<git-url>')
26
+ parsed.git_url
38
27
  end
39
28
 
40
29
  def git_uncached
@@ -1,35 +1,44 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'eac_ruby_utils/console/docopt_runner'
3
+ require 'avmtrf1/core_ext'
4
4
  require 'avmtrf1/git/push_large'
5
5
 
6
6
  module Avmtrf1
7
7
  module Tools
8
- class Runner < ::EacRubyUtils::Console::DocoptRunner
8
+ class Runner
9
9
  class Git < ::Avm::Tools::Runner::Git
10
- class PushLarge < ::EacRubyUtils::Console::DocoptRunner
11
- DOC = <<~DOCOPT
12
- Realiza push de repositórios grandes
13
- (Que falham com "pack exceeds maximum allowed size").
10
+ class PushLarge
11
+ DEFAULT_REPO_PATH = '.'
12
+ DEFAULT_REMOTE = 'origin'
14
13
 
15
- Usage:
16
- __PROGRAM__ [options] <source-ref> <target-ref>
17
- __PROGRAM__ -h | --help
18
-
19
- Options:
20
- -h --help Mostra esta ajuda.
21
- -C <git-local> Caminho do repositório local [default: .].
22
- -r --remote <remote-name> Nome do remoto [default: origin].
23
- DOCOPT
14
+ runner_with :help do
15
+ desc 'Realiza push de repositórios grandes (Que falham com "pack exceeds maximum' \
16
+ ' allowed size")'
17
+ arg_opt '-C', '--repo-path', 'Caminho do repositório local' \
18
+ " [default: #{DEFAULT_REPO_PATH}]."
19
+ arg_opt '-r', '--remote', "Nome do remoto [default: #{DEFAULT_REMOTE}]."
20
+ pos_arg :source_ref
21
+ pos_arg :target_ref
22
+ end
24
23
 
25
24
  def run
26
25
  ::Avmtrf1::Git::PushLarge.new(
27
- ::File.expand_path(options.fetch('-C')),
28
- options.fetch('--remote'),
29
- options.fetch('<source-ref>'),
30
- options.fetch('<target-ref>')
26
+ ::File.expand_path(repo_path),
27
+ remote,
28
+ parsed.source_ref,
29
+ parsed.target_ref
31
30
  ).run
32
31
  end
32
+
33
+ private
34
+
35
+ def repo_path
36
+ parsed.repo_path || DEFAULT_REPO_PATH
37
+ end
38
+
39
+ def remote
40
+ parsed.remote || DEFAULT_REMOTE
41
+ end
33
42
  end
34
43
  end
35
44
  end
@@ -1,18 +1,16 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'eac_ruby_utils/console/docopt_runner'
4
3
  require 'avmtrf1/tools/runner/check_point/login'
5
4
  require 'avmtrf1/inventario_sistemas/parser'
5
+ require 'eac_cli/core_ext'
6
6
 
7
7
  module Avmtrf1
8
8
  module Tools
9
- class Runner < ::EacRubyUtils::Console::DocoptRunner
10
- class InventarioSistemas < ::EacRubyUtils::Console::DocoptRunner
11
- include ::EacCli::DefaultRunner
12
-
9
+ class Runner
10
+ class InventarioSistemas
13
11
  DEFAULT_OUTPUT_DIR = './inventario-sistemas'
14
12
 
15
- runner_definition do
13
+ runner_with :help do
16
14
  desc 'Formata a planilha de inventário de sistemas do TRF1.'
17
15
  bool_opt '-w', '--overwrite', 'Sobreescreve diretório de saída se já existir.'
18
16
  arg_opt '-d', '--output-directory', "Diretório de saída [default: #{DEFAULT_OUTPUT_DIR}]."
@@ -37,7 +35,7 @@ module Avmtrf1
37
35
  end
38
36
 
39
37
  def input_file_uncached
40
- options.fetch('<source-file-path>').to_pathname.expand_path
38
+ parsed.source_file_path.to_pathname.expand_path
41
39
  end
42
40
 
43
41
  def site_build_uncached
@@ -45,11 +43,11 @@ module Avmtrf1
45
43
  end
46
44
 
47
45
  def output_directory_uncached
48
- options.fetch('--output-directory').if_present(DEFAULT_OUTPUT_DIR).to_pathname.expand_path
46
+ parsed.output_directory.if_present(DEFAULT_OUTPUT_DIR).to_pathname.expand_path
49
47
  end
50
48
 
51
49
  def overwrite?
52
- options.fetch('--overwrite')
50
+ parsed.overwrite?
53
51
  end
54
52
 
55
53
  def start_banner
@@ -0,0 +1,91 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'avmtrf1/ad_user'
4
+ require 'avmtrf1/executables'
5
+ require 'avmtrf1/openvpn/config/builder'
6
+ require 'eac_cli/core_ext'
7
+
8
+ module Avmtrf1
9
+ module Tools
10
+ class Runner
11
+ class Openvpn
12
+ runner_with :help do
13
+ desc 'Conecta-se utilizando OpenVPN com configurações dinâmicas.'
14
+ bool_opt '-S', '--no-sudo', 'Não executa com "sudo".'
15
+ bool_opt '-A', '--no-ad-auth', 'Não utiliza autenticação do Active Directory.'
16
+ pos_arg :ovpn_path
17
+ end
18
+
19
+ def run
20
+ on_temp_files do
21
+ start_banner
22
+ infov 'Resultado', command.system
23
+ end
24
+ end
25
+
26
+ private
27
+
28
+ attr_accessor :credentials_path, :ovpn_config_path
29
+
30
+ def ad_auth?
31
+ !parsed.no_ad_auth?
32
+ end
33
+
34
+ def command_uncached
35
+ if parsed.no_sudo?
36
+ ::Avmtrf1::Executables.env.command(*openvpn_args)
37
+ else
38
+ ::Avmtrf1::Executables.sudo.command(*openvpn_args)
39
+ end
40
+ end
41
+
42
+ def config_builder_uncached
43
+ r = ::Avmtrf1::Openvpn::Config::Builder.new(parsed.ovpn_path)
44
+ r.simple_add_or_update('auth-user-pass', [credentials_path.to_path]) if ad_auth?
45
+ r
46
+ end
47
+
48
+ def openvpn_args
49
+ ['openvpn', '--config', ovpn_config_path]
50
+ end
51
+
52
+ def start_banner
53
+ infov 'Arquivo de configuração', parsed.ovpn_path
54
+ infov 'Linha de comando', ::Shellwords.join(command.args)
55
+ end
56
+
57
+ def on_temp_files
58
+ on_credentials_file do
59
+ on_config_file { yield }
60
+ end
61
+ end
62
+
63
+ def on_credentials_file(&block)
64
+ if ad_auth?
65
+ on_temp_file(:credentials_path, -> { credentials_content }, &block)
66
+ else
67
+ block.call
68
+ end
69
+ end
70
+
71
+ def on_config_file(&block)
72
+ on_temp_file(:ovpn_config_path, -> { config_builder.data }, &block)
73
+ end
74
+
75
+ def on_temp_file(attr, content_proc)
76
+ ::EacRubyUtils::Fs::Temp.on_file do |file|
77
+ file.write(content_proc.call)
78
+ send("#{attr}=", file)
79
+ yield
80
+ send("#{attr}=", nil)
81
+ end
82
+ end
83
+
84
+ def credentials_content
85
+ [::Avmtrf1.ad_user.username, ::Avmtrf1.ad_user.password]
86
+ .map { |v| "#{v}\n" }.join
87
+ end
88
+ end
89
+ end
90
+ end
91
+ end