avm-tools 0.35.0 → 0.36.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 +4 -4
- data/lib/avm/instances/configuration.rb +29 -0
- data/lib/avm/ruby.rb +4 -0
- data/lib/avm/ruby/rubocop.rb +55 -0
- data/lib/avm/ruby/rubocop/_configured.rb +40 -0
- data/lib/avm/ruby/rubocop/_envvar.rb +16 -0
- data/lib/avm/ruby/rubocop/_gemfile.rb +40 -0
- data/lib/avm/tools/runner.rb +8 -4
- data/lib/avm/tools/runner/ruby.rb +25 -0
- data/lib/avm/tools/runner/ruby/rubocop.rb +46 -0
- data/lib/avm/tools/version.rb +1 -1
- metadata +23 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bd0fc54aa88d5a418257e41542446fd247ecacc10764babfc6b1c74c329c4560
|
4
|
+
data.tar.gz: 163c224656cb2db01b66c756e186ea57f532fba2d225334f77573f18dfbce52e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 66bfb3911d0cf5ea1c84a4ccbb6df1f9e80a4f28819b364a54835259d3561068a09f49a874221789e53a3bb46cb616bcef4bb25407f1431ee930f389dd55177b
|
7
|
+
data.tar.gz: 8585671f0d8aaa316124354b9390beedc7667e49a667be6db76a744590a2cb74cdda96691111bac2e7c20808b1bf61286ece822bb68ca48affd4679a5d192331
|
@@ -0,0 +1,29 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'eac_ruby_utils/configs'
|
4
|
+
require 'yaml'
|
5
|
+
|
6
|
+
module Avm
|
7
|
+
module Instances
|
8
|
+
class Configuration < ::EacRubyUtils::Configs
|
9
|
+
FILENAMES = %w[.avm.yml .avm.yaml].freeze
|
10
|
+
|
11
|
+
class << self
|
12
|
+
def find_by_path(path)
|
13
|
+
path = ::Pathname.new(path.to_s).expand_path unless path.is_a?(::Pathname)
|
14
|
+
if path.directory?
|
15
|
+
FILENAMES.each do |filename|
|
16
|
+
file = path.join(filename)
|
17
|
+
return new(file) if file.exist?
|
18
|
+
end
|
19
|
+
end
|
20
|
+
find_by_path(path.dirname) unless path.root?
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
def initialize(path)
|
25
|
+
super(nil, storage_path: path)
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
data/lib/avm/ruby.rb
CHANGED
@@ -0,0 +1,55 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'eac_ruby_utils/core_ext'
|
4
|
+
require 'eac_ruby_utils/on_clean_ruby_environment'
|
5
|
+
|
6
|
+
module Avm
|
7
|
+
module Ruby
|
8
|
+
class Rubocop
|
9
|
+
require_sub __FILE__
|
10
|
+
enable_console_speaker
|
11
|
+
enable_simple_cache
|
12
|
+
common_constructor :base_path, :rubocop_args
|
13
|
+
set_callback :initialize, :after do
|
14
|
+
@base_path = ::Pathname.new(base_path.to_s) unless base_path.is_a?(::Pathname)
|
15
|
+
end
|
16
|
+
|
17
|
+
def run
|
18
|
+
start_banner
|
19
|
+
run_rubocop
|
20
|
+
end
|
21
|
+
|
22
|
+
private
|
23
|
+
|
24
|
+
def cmd(*args)
|
25
|
+
::EacRubyUtils::Envs.local.command(*args)
|
26
|
+
end
|
27
|
+
|
28
|
+
def rubocop_command_uncached
|
29
|
+
%w[env configured gemfile].each do |s|
|
30
|
+
cmd = send("#{s}_rubocop_command")
|
31
|
+
return cmd if cmd.present?
|
32
|
+
end
|
33
|
+
cmd('rubocop')
|
34
|
+
end
|
35
|
+
|
36
|
+
def rubocop_command_with_args
|
37
|
+
rubocop_command.append(rubocop_args)
|
38
|
+
end
|
39
|
+
|
40
|
+
def rubocop_version_uncached
|
41
|
+
::EacRubyUtils.on_clean_ruby_environment do
|
42
|
+
rubocop_command.append(['--version']).execute!.strip
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
def run_rubocop
|
47
|
+
::EacRubyUtils.on_clean_ruby_environment { rubocop_command_with_args.system }
|
48
|
+
end
|
49
|
+
|
50
|
+
def start_banner
|
51
|
+
infov 'Rubocop version', rubocop_version
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'avm/instances/configuration'
|
4
|
+
|
5
|
+
module Avm
|
6
|
+
module Ruby
|
7
|
+
class Rubocop
|
8
|
+
def configured_rubocop_command_uncached
|
9
|
+
configured_rubocop_command_by_command || configured_rubocop_command_by_gemfile
|
10
|
+
end
|
11
|
+
|
12
|
+
def configured_rubocop_command_by_command
|
13
|
+
rubocop_command = configuration.if_present { |v| v.read_entry('ruby.rubocop.command') }
|
14
|
+
return nil unless rubocop_command.present?
|
15
|
+
|
16
|
+
args = if rubocop_command.is_a?(::Enumerable)
|
17
|
+
rubocop_command.map(&:to_s)
|
18
|
+
else
|
19
|
+
::Shellwords.split(rubocop_command)
|
20
|
+
end
|
21
|
+
cmd(args).chdir(::File.dirname(configuration.storage_path))
|
22
|
+
end
|
23
|
+
|
24
|
+
def configured_rubocop_command_by_gemfile
|
25
|
+
gemfile_path = configuration.if_present { |v| v.read_entry('ruby.rubocop.gemfile') }
|
26
|
+
return nil unless gemfile_path.present?
|
27
|
+
|
28
|
+
rubocop_command_by_gemfile_path(
|
29
|
+
::Pathname.new(gemfile_path).expand_path(configuration.storage_path.dirname)
|
30
|
+
)
|
31
|
+
end
|
32
|
+
|
33
|
+
private
|
34
|
+
|
35
|
+
def configuration_uncached
|
36
|
+
::Avm::Instances::Configuration.find_by_path(base_path)
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'eac_ruby_utils/core_ext'
|
4
|
+
require 'eac_ruby_utils/on_clean_ruby_environment'
|
5
|
+
|
6
|
+
module Avm
|
7
|
+
module Ruby
|
8
|
+
class Rubocop
|
9
|
+
RUBOCOP_COMMAND_ENVVAR_NAME = 'RUBOCOP_COMMAND'
|
10
|
+
|
11
|
+
def env_rubocop_command
|
12
|
+
ENV[RUBOCOP_COMMAND_ENVVAR_NAME].present? ? cmd(ENV[RUBOCOP_COMMAND_ENVVAR_NAME]) : nil
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'eac_ruby_gems_utils/gem'
|
4
|
+
require 'eac_ruby_utils/core_ext'
|
5
|
+
require 'eac_ruby_utils/on_clean_ruby_environment'
|
6
|
+
|
7
|
+
module Avm
|
8
|
+
module Ruby
|
9
|
+
class Rubocop
|
10
|
+
def gemfile_rubocop_command
|
11
|
+
return nil unless rubocop_gemfile?
|
12
|
+
|
13
|
+
rubocop_command_by_gemfile_path(mygem.gemfile_path)
|
14
|
+
end
|
15
|
+
|
16
|
+
def rubocop_command_by_gemfile_path(path)
|
17
|
+
mygem.bundle('exec', 'rubocop').envvar('BUNDLE_GEMFILE', path.to_s)
|
18
|
+
end
|
19
|
+
|
20
|
+
def rubocop_gemfile?
|
21
|
+
return false unless mygem.present?
|
22
|
+
|
23
|
+
mygem.bundle('install').execute!
|
24
|
+
mygem.gemfile_lock_gem_version('rubocop').present?
|
25
|
+
end
|
26
|
+
|
27
|
+
private
|
28
|
+
|
29
|
+
def mygem_uncached
|
30
|
+
find_gem(base_path)
|
31
|
+
end
|
32
|
+
|
33
|
+
def find_gem(path)
|
34
|
+
r = ::EacRubyGemsUtils::Gem.new(path)
|
35
|
+
return r if r.gemfile_path.exist?
|
36
|
+
return find_gem(path.dirname) unless path.root?
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
data/lib/avm/tools/runner.rb
CHANGED
@@ -22,13 +22,17 @@ module Avm
|
|
22
22
|
Options:
|
23
23
|
-h --help Show this screen.
|
24
24
|
-V --version Show version.
|
25
|
+
-q --quiet Quiet mode.
|
25
26
|
DOCOPT
|
26
27
|
|
27
28
|
def run
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
29
|
+
on_speaker_node do |node|
|
30
|
+
node.stderr = ::StringIO.new if options.fetch('--quiet')
|
31
|
+
if options.fetch('--version')
|
32
|
+
out(::Avm::Tools::VERSION + "\n")
|
33
|
+
else
|
34
|
+
run_with_subcommand
|
35
|
+
end
|
32
36
|
end
|
33
37
|
end
|
34
38
|
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'eac_ruby_utils/console/docopt_runner'
|
4
|
+
require 'eac_ruby_utils/core_ext'
|
5
|
+
|
6
|
+
module Avm
|
7
|
+
module Tools
|
8
|
+
class Runner < ::EacRubyUtils::Console::DocoptRunner
|
9
|
+
class Ruby < ::EacRubyUtils::Console::DocoptRunner
|
10
|
+
require_sub __FILE__
|
11
|
+
|
12
|
+
DOC = <<~DOCOPT
|
13
|
+
Ruby utilities for AVM.
|
14
|
+
|
15
|
+
Usage:
|
16
|
+
__PROGRAM__ [options] __SUBCOMMANDS__
|
17
|
+
__PROGRAM__ -h | --help
|
18
|
+
|
19
|
+
Options:
|
20
|
+
-h --help Show this screen.
|
21
|
+
DOCOPT
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,46 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'avm/ruby/rubocop'
|
4
|
+
require 'eac_ruby_utils/console/docopt_runner'
|
5
|
+
require 'eac_ruby_utils/core_ext'
|
6
|
+
|
7
|
+
module Avm
|
8
|
+
module Tools
|
9
|
+
class Runner < ::EacRubyUtils::Console::DocoptRunner
|
10
|
+
class Ruby < ::EacRubyUtils::Console::DocoptRunner
|
11
|
+
class Rubocop < ::EacRubyUtils::Console::DocoptRunner
|
12
|
+
include ::EacRubyUtils::Console::Speaker
|
13
|
+
include ::EacRubyUtils::SimpleCache
|
14
|
+
|
15
|
+
DOC = <<~DOCOPT
|
16
|
+
Runs Rubocop (https://rubygems.org/gems/rubocop).
|
17
|
+
|
18
|
+
Usage:
|
19
|
+
__PROGRAM__ [options] [<rubocop-args>...]
|
20
|
+
__PROGRAM__ -h | --help
|
21
|
+
|
22
|
+
Options:
|
23
|
+
-h --help Show this screen.
|
24
|
+
-C=<path> Caminho para executar o Rubocop [default: .].
|
25
|
+
DOCOPT
|
26
|
+
|
27
|
+
def run
|
28
|
+
::Avm::Ruby::Rubocop.new(path, rubocop_args).run
|
29
|
+
end
|
30
|
+
|
31
|
+
private
|
32
|
+
|
33
|
+
def path
|
34
|
+
::Pathname.new(options.fetch('-C')).expand_path
|
35
|
+
end
|
36
|
+
|
37
|
+
def rubocop_args
|
38
|
+
r = options.fetch('<rubocop-args>')
|
39
|
+
r.shift if r.first == '--'
|
40
|
+
r
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
data/lib/avm/tools/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: avm-tools
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.36.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Esquilo Azul Company
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-03-
|
11
|
+
date: 2020-03-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: aranha-parsers
|
@@ -70,6 +70,20 @@ dependencies:
|
|
70
70
|
- - ">="
|
71
71
|
- !ruby/object:Gem::Version
|
72
72
|
version: 0.6.1
|
73
|
+
- !ruby/object:Gem::Dependency
|
74
|
+
name: eac_ruby_gems_utils
|
75
|
+
requirement: !ruby/object:Gem::Requirement
|
76
|
+
requirements:
|
77
|
+
- - "~>"
|
78
|
+
- !ruby/object:Gem::Version
|
79
|
+
version: '0.2'
|
80
|
+
type: :runtime
|
81
|
+
prerelease: false
|
82
|
+
version_requirements: !ruby/object:Gem::Requirement
|
83
|
+
requirements:
|
84
|
+
- - "~>"
|
85
|
+
- !ruby/object:Gem::Version
|
86
|
+
version: '0.2'
|
73
87
|
- !ruby/object:Gem::Dependency
|
74
88
|
name: eac_ruby_utils
|
75
89
|
requirement: !ruby/object:Gem::Requirement
|
@@ -225,6 +239,7 @@ files:
|
|
225
239
|
- lib/avm/instances/base/auto_values/system.rb
|
226
240
|
- lib/avm/instances/base/auto_values/web.rb
|
227
241
|
- lib/avm/instances/base/dockerizable.rb
|
242
|
+
- lib/avm/instances/configuration.rb
|
228
243
|
- lib/avm/instances/entries.rb
|
229
244
|
- lib/avm/instances/entries/entry_reader.rb
|
230
245
|
- lib/avm/instances/entry_keys.rb
|
@@ -234,6 +249,10 @@ files:
|
|
234
249
|
- lib/avm/path_string.rb
|
235
250
|
- lib/avm/result.rb
|
236
251
|
- lib/avm/ruby.rb
|
252
|
+
- lib/avm/ruby/rubocop.rb
|
253
|
+
- lib/avm/ruby/rubocop/_configured.rb
|
254
|
+
- lib/avm/ruby/rubocop/_envvar.rb
|
255
|
+
- lib/avm/ruby/rubocop/_gemfile.rb
|
237
256
|
- lib/avm/self.rb
|
238
257
|
- lib/avm/self/docker_image.rb
|
239
258
|
- lib/avm/self/instance.rb
|
@@ -297,6 +316,8 @@ files:
|
|
297
316
|
- lib/avm/tools/runner/git/issue.rb
|
298
317
|
- lib/avm/tools/runner/git/issue/complete.rb
|
299
318
|
- lib/avm/tools/runner/git/revisions_test.rb
|
319
|
+
- lib/avm/tools/runner/ruby.rb
|
320
|
+
- lib/avm/tools/runner/ruby/rubocop.rb
|
300
321
|
- lib/avm/tools/runner/self.rb
|
301
322
|
- lib/avm/tools/runner/self/docker.rb
|
302
323
|
- lib/avm/tools/version.rb
|