avm-tools 0.138.0 → 0.140.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (41) hide show
  1. checksums.yaml +4 -4
  2. data/lib/avm/launcher/git/warp_base.rb +2 -2
  3. data/lib/avm/projects/stereotypes/git_subrepo/warp.rb +2 -2
  4. data/lib/avm/projects/stereotypes.rb +0 -9
  5. data/lib/avm/tools/core_ext.rb +0 -1
  6. data/lib/avm/tools/runner/launcher.rb +1 -0
  7. data/lib/avm/tools/runner/source/info.rb +0 -4
  8. data/lib/avm/tools/runner/source/test.rb +1 -1
  9. data/lib/avm/tools/runner/source.rb +0 -12
  10. data/lib/avm/tools/version.rb +1 -1
  11. metadata +6 -36
  12. data/lib/avm/launcher/context/instance_collector.rb +0 -46
  13. data/lib/avm/launcher/context/instance_discovery.rb +0 -56
  14. data/lib/avm/launcher/context/instance_manager/cached_instance.rb +0 -37
  15. data/lib/avm/launcher/context/instance_manager/cached_instances.rb +0 -35
  16. data/lib/avm/launcher/context/instance_manager.rb +0 -76
  17. data/lib/avm/launcher/context/settings.rb +0 -53
  18. data/lib/avm/launcher/context.rb +0 -94
  19. data/lib/avm/launcher/instances/base/cache.rb +0 -43
  20. data/lib/avm/launcher/instances/base.rb +0 -96
  21. data/lib/avm/launcher/instances/error.rb +0 -10
  22. data/lib/avm/launcher/instances/runner_helper.rb +0 -47
  23. data/lib/avm/launcher/instances/settings.rb +0 -55
  24. data/lib/avm/launcher/instances.rb +0 -6
  25. data/lib/avm/launcher/paths/logical.rb +0 -87
  26. data/lib/avm/launcher/paths.rb +0 -4
  27. data/lib/avm/launcher/project.rb +0 -18
  28. data/lib/avm/launcher/publish/base.rb +0 -47
  29. data/lib/avm/launcher/publish.rb +0 -4
  30. data/lib/avm/launcher/vendor/github.rb +0 -20
  31. data/lib/avm/launcher/vendor.rb +0 -3
  32. data/lib/avm/patches/i18n.rb +0 -22
  33. data/lib/avm/patches.rb +0 -9
  34. data/lib/avm/projects/stereotype/job_comparator.rb +0 -32
  35. data/lib/avm/projects/stereotypes/rails_application/local_project_mixin.rb +0 -18
  36. data/lib/avm/projects/stereotypes/rails_application.rb +0 -25
  37. data/lib/avm/projects/stereotypes/redmine_plugin.rb +0 -23
  38. data/lib/avm/stereotypes.rb +0 -9
  39. data/lib/avm/tools/source.rb +0 -64
  40. data/locale/en.yml +0 -7
  41. data/locale/pt-BR.yml +0 -7
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e7bf83b886d7158f37723c559d52eab9c7212390f673937cd81fa75209b7f6ff
4
- data.tar.gz: 88797a72e234d4fa2900365cf3793fd7f2ea91ae9f8f804e8d624bc2946c3f17
3
+ metadata.gz: ed2d914555d3c58362e1295400822e92705cae0150e957fd451d9bb88605bf52
4
+ data.tar.gz: 0fa211ad333f697fc6c07bb89205552f64e5be5730795e5828cb6b652eef500b
5
5
  SHA512:
6
- metadata.gz: 3ea44e51d1adf4b4607f08f12437c6cda8bb26a180ff1b3be138cf492e4b025e0364be3e6a70bcc35704c9755a087636e111f7ffb187ebfed1654e0943489aa7
7
- data.tar.gz: 504f1b7e9c8e8019452078ba76abc89a13daee3969a8e25cb4a4a671e26c297a4efd8bf3ba34b383efde402217644c1779552ff9eef03b32892b4e0f6ab30ca8
6
+ metadata.gz: 153e38b2a7f25f90736f65388c2cdc61a011aefeee2247fdd94f0165624af5dc73b78cb7a7d31a39bec85e37712ec745b80eca5ac36f7eb2bd7a3aa129860af0
7
+ data.tar.gz: bf4e32eaf0b13d24215b29fde58b9d0dc44335050fad19ab86d6f970312d260ea63b6244e70372ccb72ada83e199bdf4d69ae2acb96c220090a4e6f3952821b8
@@ -2,7 +2,7 @@
2
2
 
3
3
  require 'avm/launcher/git/mirror_update'
4
4
  require 'avm/launcher/instances/error'
5
- require 'avm/launcher/vendor/github'
5
+ require 'avm/git/vendor/github'
6
6
  require 'avm/projects/stereotypes/git/publish'
7
7
 
8
8
  module Avm
@@ -59,7 +59,7 @@ module Avm
59
59
  end
60
60
 
61
61
  def target_remote_url
62
- ::Avm::Launcher::Vendor::Github.to_ssh_url(source_git.git.remote(source_remote_name).url)
62
+ ::Avm::Git::Vendor::Github.to_ssh_url(source_git.git.remote(source_remote_name).url)
63
63
  end
64
64
  end
65
65
  end
@@ -4,7 +4,7 @@ require 'eac_ruby_utils/simple_cache'
4
4
  require 'avm/launcher/git/sub_warp_base'
5
5
  require 'avm/launcher/errors/base'
6
6
  require 'avm/launcher/paths/real'
7
- require 'avm/launcher/vendor/github'
7
+ require 'avm/git/vendor/github'
8
8
 
9
9
  module Avm
10
10
  module Projects
@@ -77,7 +77,7 @@ module Avm
77
77
  end
78
78
 
79
79
  def target_remote_url
80
- ::Avm::Launcher::Vendor::Github.to_ssh_url(
80
+ ::Avm::Git::Vendor::Github.to_ssh_url(
81
81
  parent_git_warped.subrepo_remote_url(to_parent_git_path)
82
82
  )
83
83
  end
@@ -1,20 +1,11 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'avm/projects/stereotype'
4
3
  require 'eac_ruby_utils/core_ext'
5
4
 
6
5
  module Avm
7
6
  module Projects
8
7
  module Stereotypes
9
8
  require_sub __FILE__, base: nil
10
-
11
- class << self
12
- def list
13
- @list ||= constants.map { |c| const_get(c) }
14
- .select { |c| c.included_modules.include?(Avm::Projects::Stereotype) }
15
- .freeze
16
- end
17
- end
18
9
  end
19
10
  end
20
11
  end
@@ -1,4 +1,3 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'avm/patches'
4
3
  require 'eac_ruby_base0/core_ext'
@@ -1,6 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'avm/tools/core_ext'
4
+ require 'avm/projects/stereotypes'
4
5
 
5
6
  module Avm
6
7
  module Tools
@@ -48,10 +48,6 @@ module Avm
48
48
  infov " * #{name}", command
49
49
  end
50
50
  end
51
-
52
- def instance
53
- runner_context.call(:instance)
54
- end
55
51
  end
56
52
  end
57
53
  end
@@ -65,7 +65,7 @@ module Avm
65
65
  end
66
66
 
67
67
  def start_banner
68
- runner_context.call(:instance_banner)
68
+ runner_context.call(:source_banner)
69
69
  infov 'Selected units', test_performer.units.count
70
70
  end
71
71
 
@@ -1,7 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'avm/sources/runner'
4
- require 'avm/tools/source'
5
4
  require 'eac_cli/core_ext'
6
5
 
7
6
  module Avm
@@ -10,20 +9,9 @@ module Avm
10
9
  class Source < ::Avm::Sources::Runner
11
10
  require_sub __FILE__
12
11
 
13
- def instance_banner
14
- infov 'Instance', instance
15
- infov 'Stereotypes', instance.stereotypes.map(&:label).join(', ')
16
- end
17
-
18
12
  def subject
19
13
  source
20
14
  end
21
-
22
- private
23
-
24
- def instance_uncached
25
- ::Avm::Tools::Source.new(source_path)
26
- end
27
15
  end
28
16
  end
29
17
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Avm
4
4
  module Tools
5
- VERSION = '0.138.0'
5
+ VERSION = '0.140.0'
6
6
  end
7
7
  end
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.138.0
4
+ version: 0.140.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: 2022-10-02 00:00:00.000000000 Z
11
+ date: 2022-10-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aranha-parsers
@@ -36,14 +36,14 @@ dependencies:
36
36
  requirements:
37
37
  - - "~>"
38
38
  - !ruby/object:Gem::Version
39
- version: '0.45'
39
+ version: '0.46'
40
40
  type: :runtime
41
41
  prerelease: false
42
42
  version_requirements: !ruby/object:Gem::Requirement
43
43
  requirements:
44
44
  - - "~>"
45
45
  - !ruby/object:Gem::Version
46
- version: '0.45'
46
+ version: '0.46'
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: avm-eac_ruby_base1
49
49
  requirement: !ruby/object:Gem::Requirement
@@ -98,14 +98,14 @@ dependencies:
98
98
  requirements:
99
99
  - - "~>"
100
100
  - !ruby/object:Gem::Version
101
- version: '0.4'
101
+ version: '0.5'
102
102
  type: :runtime
103
103
  prerelease: false
104
104
  version_requirements: !ruby/object:Gem::Requirement
105
105
  requirements:
106
106
  - - "~>"
107
107
  - !ruby/object:Gem::Version
108
- version: '0.4'
108
+ version: '0.5'
109
109
  - !ruby/object:Gem::Dependency
110
110
  name: clipboard
111
111
  requirement: !ruby/object:Gem::Requirement
@@ -252,13 +252,6 @@ files:
252
252
  - Gemfile
253
253
  - exe/avm
254
254
  - lib/avm.rb
255
- - lib/avm/launcher/context.rb
256
- - lib/avm/launcher/context/instance_collector.rb
257
- - lib/avm/launcher/context/instance_discovery.rb
258
- - lib/avm/launcher/context/instance_manager.rb
259
- - lib/avm/launcher/context/instance_manager/cached_instance.rb
260
- - lib/avm/launcher/context/instance_manager/cached_instances.rb
261
- - lib/avm/launcher/context/settings.rb
262
255
  - lib/avm/launcher/git.rb
263
256
  - lib/avm/launcher/git/base.rb
264
257
  - lib/avm/launcher/git/base/class_methods.rb
@@ -272,28 +265,12 @@ files:
272
265
  - lib/avm/launcher/git/remote.rb
273
266
  - lib/avm/launcher/git/sub_warp_base.rb
274
267
  - lib/avm/launcher/git/warp_base.rb
275
- - lib/avm/launcher/instances.rb
276
- - lib/avm/launcher/instances/base.rb
277
- - lib/avm/launcher/instances/base/cache.rb
278
- - lib/avm/launcher/instances/error.rb
279
- - lib/avm/launcher/instances/runner_helper.rb
280
- - lib/avm/launcher/instances/settings.rb
281
- - lib/avm/launcher/paths.rb
282
- - lib/avm/launcher/paths/logical.rb
283
- - lib/avm/launcher/project.rb
284
- - lib/avm/launcher/publish.rb
285
- - lib/avm/launcher/publish/base.rb
286
268
  - lib/avm/launcher/ruby.rb
287
269
  - lib/avm/launcher/ruby/gem.rb
288
270
  - lib/avm/launcher/ruby/gem/build.rb
289
271
  - lib/avm/launcher/ruby/gem/specification.rb
290
- - lib/avm/launcher/vendor.rb
291
- - lib/avm/launcher/vendor/github.rb
292
- - lib/avm/patches.rb
293
- - lib/avm/patches/i18n.rb
294
272
  - lib/avm/projects.rb
295
273
  - lib/avm/projects/stereotype.rb
296
- - lib/avm/projects/stereotype/job_comparator.rb
297
274
  - lib/avm/projects/stereotypes.rb
298
275
  - lib/avm/projects/stereotypes/git.rb
299
276
  - lib/avm/projects/stereotypes/git/local_project_mixin.rb
@@ -305,13 +282,9 @@ files:
305
282
  - lib/avm/projects/stereotypes/git_subtree.rb
306
283
  - lib/avm/projects/stereotypes/git_subtree/publish.rb
307
284
  - lib/avm/projects/stereotypes/git_subtree/warp.rb
308
- - lib/avm/projects/stereotypes/rails_application.rb
309
- - lib/avm/projects/stereotypes/rails_application/local_project_mixin.rb
310
- - lib/avm/projects/stereotypes/redmine_plugin.rb
311
285
  - lib/avm/projects/stereotypes/ruby_gem.rb
312
286
  - lib/avm/projects/stereotypes/ruby_gem/local_project_mixin.rb
313
287
  - lib/avm/projects/stereotypes/ruby_gem/publish.rb
314
- - lib/avm/stereotypes.rb
315
288
  - lib/avm/tools.rb
316
289
  - lib/avm/tools/core_ext.rb
317
290
  - lib/avm/tools/runner.rb
@@ -353,10 +326,7 @@ files:
353
326
  - lib/avm/tools/runner/source/version_bump.rb
354
327
  - lib/avm/tools/runner/source_generate.rb
355
328
  - lib/avm/tools/self.rb
356
- - lib/avm/tools/source.rb
357
329
  - lib/avm/tools/version.rb
358
- - locale/en.yml
359
- - locale/pt-BR.yml
360
330
  - template/avm/self/docker_image/Dockerfile
361
331
  - template/avm/self/docker_image/entrypoint.sh
362
332
  homepage:
@@ -1,46 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'eac_ruby_utils/core_ext'
4
-
5
- module Avm
6
- module Launcher
7
- class Context
8
- class InstanceCollector
9
- common_constructor :context
10
-
11
- def add_all
12
- instances_set.merge(context.instances)
13
- self
14
- end
15
-
16
- def add_path(path)
17
- instances_set.merge(instances_on_path(path))
18
- self
19
- end
20
-
21
- def add_pending
22
- instances_set.merge(context.pending_instances)
23
- self
24
- end
25
-
26
- def instances
27
- instances_set.sort
28
- end
29
-
30
- private
31
-
32
- def instance_match?(instance, instance_name)
33
- ::File.fnmatch?(instance_name, instance.name)
34
- end
35
-
36
- def instances_on_path(path)
37
- context.instances.select { |instance| instance_match?(instance, path) }
38
- end
39
-
40
- def instances_set
41
- @instances_set ||= ::Set.new
42
- end
43
- end
44
- end
45
- end
46
- end
@@ -1,56 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'ruby-progressbar'
4
- require 'avm/launcher/instances/base'
5
-
6
- module Avm
7
- module Launcher
8
- class Context
9
- class InstanceDiscovery
10
- attr_reader :instances
11
-
12
- def initialize(context)
13
- @context = context
14
- @progress = ::ProgressBar.create(title: 'Instance discovery', total: 1)
15
- @instances = path_instances(@context.root, nil)
16
- ensure
17
- @progress&.finish
18
- end
19
-
20
- private
21
-
22
- def path_instances(path, parent_instance)
23
- update_progress_format(path)
24
- on_rescued_path_instances(path) do |r|
25
- if path.project?
26
- parent_instance = ::Avm::Launcher::Instances::Base.instanciate(path, parent_instance)
27
- r << path
28
- end
29
- children = path.children
30
- update_progress_count(children)
31
- r.concat(children.flat_map { |c| path_instances(c, parent_instance) })
32
- end
33
- end
34
-
35
- def on_rescued_path_instances(path)
36
- r = []
37
- begin
38
- yield(r) if path.included?
39
- rescue StandardError => e
40
- warn("#{path}: #{e}")
41
- end
42
- r
43
- end
44
-
45
- def update_progress_format(path)
46
- @progress.format = "%t (Paths: %c/%C, Current: #{path.logical}) |%B| %a"
47
- end
48
-
49
- def update_progress_count(children)
50
- @progress.total += children.count
51
- @progress.increment
52
- end
53
- end
54
- end
55
- end
56
- end
@@ -1,37 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'avm/launcher/instances/base'
4
- require 'eac_ruby_utils/core_ext'
5
-
6
- module Avm
7
- module Launcher
8
- class Context
9
- class InstanceManager
10
- class CachedInstance
11
- enable_speaker
12
- enable_simple_cache
13
- common_constructor :cached_instances, :data
14
-
15
- private
16
-
17
- def instance_uncached
18
- ::Avm::Launcher::Instances::Base.instanciate(path, parent_instance)
19
- rescue ::Avm::Launcher::Errors::NonProject
20
- warn "Cached instance \"#{data[:logical]}\" not found"
21
- nil
22
- end
23
-
24
- def parent_instance_uncached
25
- data[:parent]
26
- .if_present { |v| cached_instances.by_logical_path(v) }
27
- .if_present(&:instance)
28
- end
29
-
30
- def path_uncached
31
- ::Avm::Launcher::Paths::Logical.from_h(cached_instances.context, data)
32
- end
33
- end
34
- end
35
- end
36
- end
37
- end
@@ -1,35 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'avm/launcher/context/instance_manager/cached_instance'
4
- require 'eac_ruby_utils/core_ext'
5
-
6
- module Avm
7
- module Launcher
8
- class Context
9
- class InstanceManager
10
- class CachedInstances
11
- enable_simple_cache
12
- common_constructor :context, :content
13
-
14
- def instances
15
- content.keys.map { |k| by_logical_path(k).instance }.reject(&:blank?)
16
- end
17
-
18
- def by_logical_path(key)
19
- cached_instances[key].if_blank do
20
- cached_instances[key] = ::Avm::Launcher::Context::InstanceManager::CachedInstance.new(
21
- self, content.fetch(key)
22
- )
23
- end
24
- end
25
-
26
- private
27
-
28
- def cached_instances_uncached
29
- {}
30
- end
31
- end
32
- end
33
- end
34
- end
35
- end
@@ -1,76 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'eac_ruby_utils/core_ext'
4
- require 'avm/launcher/publish/check_result'
5
- require('yaml')
6
-
7
- module Avm
8
- module Launcher
9
- class Context
10
- class InstanceManager
11
- require_sub __FILE__
12
- enable_simple_cache
13
- common_constructor :context
14
-
15
- def publish_state_set(instance, stereotype_name, check_status)
16
- data = cached_instances_file_content_uncached
17
- data[instance.logical] ||= {}
18
- data[instance.logical][:publish_state] ||= {}
19
- data[instance.logical][:publish_state][stereotype_name] = check_status
20
- write_cache_file(data)
21
- end
22
-
23
- def pending_instances
24
- instances.select { |instance| pending_instance?(instance) }
25
- end
26
-
27
- private
28
-
29
- def instances_uncached
30
- (cached_instances || search_instances).select(&:included?)
31
- end
32
-
33
- def search_instances
34
- cache_instances(::Avm::Launcher::Context::InstanceDiscovery.new(context).instances)
35
- end
36
-
37
- def cached_instances
38
- return nil if context.recache
39
- return nil unless cached_instances_file_content
40
-
41
- CachedInstances.new(self, cached_instances_file_content).instances
42
- end
43
-
44
- def cached_instances_file_content_uncached
45
- r = YAML.load_file(cache_file_path)
46
- r.is_a?(::Hash) ? r : nil
47
- rescue Errno::ENOENT
48
- nil
49
- end
50
-
51
- def cache_instances(instances)
52
- write_cache_file(Hash[instances.map { |i| [i.logical, i.to_h] }])
53
- instances
54
- end
55
-
56
- def write_cache_file(data)
57
- ::File.write(cache_file_path, data.to_yaml)
58
- end
59
-
60
- def cache_file_path
61
- ::File.join(context.cache_root, 'instances.yml')
62
- end
63
-
64
- def pending_instance?(instance)
65
- data = cached_instances_file_content
66
- return false unless data[instance.logical]
67
- return false unless data[instance.logical][:publish_state].is_a?(Hash)
68
-
69
- data[instance.logical][:publish_state].any? do |_k, v|
70
- ::Avm::Launcher::Publish::CheckResult.pending_status?(v)
71
- end
72
- end
73
- end
74
- end
75
- end
76
- end
@@ -1,53 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'avm/launcher/instances/settings'
4
- require 'eac_ruby_utils/simple_cache'
5
- require 'yaml'
6
-
7
- module Avm
8
- module Launcher
9
- class Context
10
- class Settings
11
- include ::EacRubyUtils::SimpleCache
12
-
13
- def initialize(file)
14
- unless ::File.exist?(file)
15
- ::FileUtils.mkdir_p(::File.dirname(file))
16
- ::File.write(file, {}.to_yaml)
17
- end
18
- @data = YAML.load_file(file)
19
- end
20
-
21
- def instance_settings(instance)
22
- ::Avm::Launcher::Instances::Settings.new(value(['Instances', instance.name]))
23
- end
24
-
25
- private
26
-
27
- def excluded_projects_uncached
28
- enum_value(%w[Projects Exclude])
29
- end
30
-
31
- def excluded_paths_uncached
32
- enum_value(%w[Paths Exclude])
33
- end
34
-
35
- def enum_value(path)
36
- r = value(path)
37
- r.is_a?(Enumerable) ? r : []
38
- end
39
-
40
- def value(path)
41
- node_value(@data, path)
42
- end
43
-
44
- def node_value(data, path)
45
- return data if path.empty?
46
- return nil unless data.is_a?(Hash)
47
-
48
- node_value(data[path.first], path.drop(1))
49
- end
50
- end
51
- end
52
- end
53
- end
@@ -1,94 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'active_support/core_ext/hash/indifferent_access'
4
- require 'avm/launcher/context/instance_manager'
5
- require 'eac_ruby_utils/simple_cache'
6
- require 'eac_cli/speaker'
7
- require 'avm/launcher/context/instance_discovery'
8
- require 'avm/launcher/context/settings'
9
- require 'avm/launcher/paths/logical'
10
- require 'avm/launcher/project'
11
- require 'avm/tools/self'
12
-
13
- module Avm
14
- module Launcher
15
- class Context
16
- include ::EacRubyUtils::SimpleCache
17
- enable_speaker
18
-
19
- class << self
20
- attr_writer :current
21
-
22
- def current
23
- @current ||= default
24
- end
25
-
26
- def default
27
- @default ||= Context.new
28
- end
29
- end
30
-
31
- attr_reader :root, :settings, :cache_root
32
- attr_accessor :publish_options, :recache, :instance_manager
33
-
34
- CONFIG_PATH_PREFIX = 'launcher'
35
-
36
- def initialize(options = {})
37
- @options = options.with_indifferent_access
38
- @root = ::Avm::Launcher::Paths::Logical.new(self, nil, build_option(:projects_root), '/')
39
- @settings = ::Avm::Launcher::Context::Settings.new(build_option(:settings_file))
40
- @cache_root = build_option(:cache_root)
41
- @publish_options = { new: false, confirm: false, stereotype: nil }
42
- @instance_manager = ::Avm::Launcher::Context::InstanceManager.new(self)
43
- @recache = false
44
- end
45
-
46
- def instance(name)
47
- instances.find { |i| i.name == name }
48
- end
49
-
50
- def instances
51
- @instance_manager.instances
52
- end
53
-
54
- def pending_instances
55
- @instance_manager.pending_instances
56
- end
57
-
58
- private
59
-
60
- def build_option(key)
61
- @options[key] || config_option(key) || default_option(key)
62
- end
63
-
64
- def config_option(key)
65
- ::Avm::Self::Instance.default.entry([CONFIG_PATH_PREFIX, key].join('.')).optional_value
66
- end
67
-
68
- def default_cache_root
69
- ::Avm::Tools::Self.application.cache_dir.join('launcher')
70
- end
71
-
72
- def default_option(key)
73
- send("default_#{key}".underscore)
74
- end
75
-
76
- def default_projects_root
77
- '.'
78
- end
79
-
80
- def default_settings_file
81
- ::Avm::Tools::Self.application.config_dir.join('launcher.yaml')
82
- end
83
-
84
- def projects_uncached
85
- r = {}
86
- instances.each do |i|
87
- r[i.project_name] ||= []
88
- r[i.project_name] << i
89
- end
90
- r.map { |name, instances| ::Avm::Launcher::Project.new(name, instances) }
91
- end
92
- end
93
- end
94
- end