avm 0.5.0 → 0.6.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (75) hide show
  1. checksums.yaml +4 -4
  2. data/lib/avm/registry/base.rb +65 -0
  3. data/lib/avm/registry.rb +29 -0
  4. data/lib/avm/rspec/setup.rb +22 -0
  5. data/lib/avm/rspec/shared_examples/in_avm_registry.rb +11 -0
  6. data/lib/avm/rspec/shared_examples/not_in_avm_registry.rb +14 -0
  7. data/lib/avm/{git/organize.rb → rspec.rb} +2 -4
  8. data/lib/avm/scms/base.rb +28 -0
  9. data/lib/avm/scms/commit.rb +43 -0
  10. data/lib/avm/source_stereotypes/base.rb +21 -0
  11. data/lib/avm/sources/base.rb +22 -0
  12. data/lib/avm/version.rb +1 -1
  13. metadata +13 -67
  14. data/lib/avm/files/appendable/file_content.rb +0 -24
  15. data/lib/avm/files/appendable/plain_directory.rb +0 -25
  16. data/lib/avm/files/appendable/resource_base.rb +0 -13
  17. data/lib/avm/files/appendable/tar_output_command.rb +0 -26
  18. data/lib/avm/files/appendable/templatized_directory.rb +0 -29
  19. data/lib/avm/files/appendable.rb +0 -55
  20. data/lib/avm/files/appender.rb +0 -11
  21. data/lib/avm/files/deploy.rb +0 -71
  22. data/lib/avm/files/formatter/formats/base.rb +0 -62
  23. data/lib/avm/files/formatter/formats/generic_plain.rb +0 -34
  24. data/lib/avm/files/formatter/formats/html.rb +0 -45
  25. data/lib/avm/files/formatter/formats/javascript.rb +0 -24
  26. data/lib/avm/files/formatter/formats/json.rb +0 -27
  27. data/lib/avm/files/formatter/formats/php.rb +0 -22
  28. data/lib/avm/files/formatter/formats/python.rb +0 -22
  29. data/lib/avm/files/formatter/formats/ruby.rb +0 -22
  30. data/lib/avm/files/formatter/formats/xml.rb +0 -28
  31. data/lib/avm/files/formatter/formats.rb +0 -13
  32. data/lib/avm/files/formatter/utf8_assert.rb +0 -74
  33. data/lib/avm/files/formatter.rb +0 -90
  34. data/lib/avm/files/rotate.rb +0 -107
  35. data/lib/avm/files.rb +0 -9
  36. data/lib/avm/git/auto_commit/commit_info.rb +0 -23
  37. data/lib/avm/git/auto_commit/rules/base.rb +0 -39
  38. data/lib/avm/git/auto_commit/rules/last.rb +0 -19
  39. data/lib/avm/git/auto_commit/rules/manual.rb +0 -45
  40. data/lib/avm/git/auto_commit/rules/new.rb +0 -24
  41. data/lib/avm/git/auto_commit/rules/nth.rb +0 -31
  42. data/lib/avm/git/auto_commit/rules/unique.rb +0 -21
  43. data/lib/avm/git/auto_commit/rules.rb +0 -31
  44. data/lib/avm/git/auto_commit_path/ruby.rb +0 -20
  45. data/lib/avm/git/auto_commit_path.rb +0 -28
  46. data/lib/avm/git/commit/class_methods.rb +0 -31
  47. data/lib/avm/git/commit/deploy.rb +0 -38
  48. data/lib/avm/git/commit/deploy_methods.rb +0 -19
  49. data/lib/avm/git/commit/diff_tree_line.rb +0 -32
  50. data/lib/avm/git/commit/file.rb +0 -46
  51. data/lib/avm/git/commit.rb +0 -59
  52. data/lib/avm/git/file_auto_fixup.rb +0 -83
  53. data/lib/avm/git/issue/complete/commits.rb +0 -42
  54. data/lib/avm/git/issue/complete/git_subrepos.rb +0 -23
  55. data/lib/avm/git/issue/complete/local_branch.rb +0 -54
  56. data/lib/avm/git/issue/complete/local_tag.rb +0 -39
  57. data/lib/avm/git/issue/complete/push.rb +0 -54
  58. data/lib/avm/git/issue/complete/remote.rb +0 -33
  59. data/lib/avm/git/issue/complete/test.rb +0 -45
  60. data/lib/avm/git/issue/complete/tracker.rb +0 -28
  61. data/lib/avm/git/issue/complete/validation.rb +0 -31
  62. data/lib/avm/git/issue/complete/validations.rb +0 -53
  63. data/lib/avm/git/issue/complete/working_tree.rb +0 -19
  64. data/lib/avm/git/issue/complete.rb +0 -51
  65. data/lib/avm/git/issue/deliver.rb +0 -56
  66. data/lib/avm/git/issue.rb +0 -11
  67. data/lib/avm/git/organize/reference_update.rb +0 -34
  68. data/lib/avm/git/organize/repository.rb +0 -76
  69. data/lib/avm/git/revision_test.rb +0 -105
  70. data/lib/avm/git/subrepo_check/parent.rb +0 -51
  71. data/lib/avm/git/subrepo_check/remote.rb +0 -89
  72. data/lib/avm/git/subrepo_check/show_result.rb +0 -32
  73. data/lib/avm/git/subrepo_check.rb +0 -38
  74. data/lib/avm/git/subrepo_checks.rb +0 -59
  75. data/lib/avm/git.rb +0 -10
@@ -1,51 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'avm/result'
4
- require 'eac_ruby_utils/core_ext'
5
-
6
- module Avm
7
- module Git
8
- class SubrepoCheck
9
- module Parent
10
- def fix_parent
11
- return if parent_result.success?
12
-
13
- info(' Fixing...')
14
- self.parent_hash = expected_parent_hash
15
- info_banner
16
- end
17
-
18
- private
19
-
20
- def expected_parent_hash_uncached
21
- subrepo.local.rev_parse("#{last_file_change_rev}^")
22
- end
23
-
24
- def last_file_change_rev
25
- subrepo.local.command('log', '-n', '1', '--pretty=format:%H', '--',
26
- subrepo.config_relative_path.to_path).execute!.strip
27
- end
28
-
29
- def parent_hash
30
- subrepo.parent_commit_id
31
- end
32
-
33
- def parent_hash=(new_hash)
34
- subrepo.config.parent_commit_id = new_hash
35
- subrepo.write_config
36
- end
37
-
38
- def parent_hash_ok?
39
- return false if expected_parent_hash.blank? || parent_hash.blank?
40
-
41
- expected_parent_hash == parent_hash
42
- end
43
-
44
- def parent_result_uncached
45
- ::Avm::Result.success_or_error(parent_hash_ok?,
46
- parent_hash.presence || blank_text)
47
- end
48
- end
49
- end
50
- end
51
- end
@@ -1,89 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'avm/result'
4
- require 'eac_ruby_utils/core_ext'
5
-
6
- module Avm
7
- module Git
8
- class SubrepoCheck
9
- module Remote
10
- private
11
-
12
- def fetch_uncached
13
- subrepo.command('clean').execute!
14
- subrepo.command('fetch').execute!
15
- end
16
-
17
- def check_remote_disabled?
18
- !check_remote?
19
- end
20
-
21
- def check_remote_disabled_result
22
- ::Avm::Result.neutral('Check remote disabled')
23
- end
24
-
25
- def local_descend_remote?
26
- local_id.present? && remote_id.present? && subrepo.local.descendant?(local_id, remote_id)
27
- end
28
-
29
- def local_descend_remote_result
30
- ::Avm::Result.pending(remote_result_value)
31
- end
32
-
33
- def local_id_uncached
34
- fetch
35
- subrepo.command('branch', '--force').execute!
36
- subrepo.local.rev_parse("subrepo/#{subrepo.subpath}")
37
- end
38
-
39
- def remote_descend_local?
40
- local_id.present? && remote_id.present? && subrepo.local.descendant?(remote_id, local_id)
41
- end
42
-
43
- def remote_descend_local_result
44
- ::Avm::Result.outdated(remote_result_value)
45
- end
46
-
47
- def remote_branches
48
- ['', 'refs/heads/', 'refs/tags/'].map { |prefix| "#{prefix}#{subrepo.remote_branch}" }
49
- end
50
-
51
- def remote_id_uncached
52
- ls_result = subrepo.remote.ls
53
- remote_branches.each do |b|
54
- return ls_result[b] if ls_result[b].present?
55
- end
56
- nil
57
- end
58
-
59
- def remote_result_uncached
60
- %w[check_remote_disabled same_ids local_descend_remote remote_descend_local]
61
- .each do |condition|
62
- return send("#{condition}_result") if send("#{condition}?")
63
- end
64
-
65
- ::Avm::Result.error(remote_result_value)
66
- end
67
-
68
- def remote_result_value
69
- local_s = local_id.presence || blank_text
70
- remote_s = remote_id.presence || blank_text
71
-
72
- if local_s == remote_s
73
- "[L/R=#{local_s}]"
74
- else
75
- "[L=#{local_s}, R=#{remote_s}]"
76
- end
77
- end
78
-
79
- def same_ids?
80
- local_id.present? && remote_id.present? && local_id == remote_id
81
- end
82
-
83
- def same_ids_result
84
- ::Avm::Result.success(remote_result_value)
85
- end
86
- end
87
- end
88
- end
89
- end
@@ -1,32 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'eac_ruby_utils/core_ext'
4
-
5
- module Avm
6
- module Git
7
- class SubrepoCheck
8
- module ShowResult
9
- def show_result
10
- out(subrepo.subpath.to_path.cyan)
11
- out_attr('parent', parent_result.label)
12
- run_fix_parent
13
- out_attr('remote', remote_result.label)
14
- out("\n")
15
- end
16
-
17
- def run_fix_parent
18
- return unless fix_parent?
19
- return unless parent_result.error?
20
-
21
- out('|Fixing...'.white)
22
- self.parent_hash = expected_parent_hash
23
- out_attr('new parent', parent_result.label)
24
- end
25
-
26
- def out_attr(key, value)
27
- out('|' + "#{key}=".white + value)
28
- end
29
- end
30
- end
31
- end
32
- end
@@ -1,38 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'eac_ruby_utils/core_ext'
4
-
5
- module Avm
6
- module Git
7
- class SubrepoCheck
8
- require_sub __FILE__, include_modules: true
9
- enable_speaker
10
- enable_simple_cache
11
-
12
- BLANK_TEXT = 'BLANK'
13
-
14
- common_constructor :subrepo, :options
15
-
16
- def blank_text
17
- BLANK_TEXT
18
- end
19
-
20
- def check_remote?
21
- options.fetch(:check_remote) ? true : false
22
- end
23
-
24
- def fix_parent?
25
- options.fetch(:fix_parent) ? true : false
26
- end
27
-
28
- private
29
-
30
- def result_uncached
31
- return ::Avm::Result.error('Parent failed') if parent_result.error?
32
- return ::Avm::Result.error('Remote failed') if remote_result.error?
33
-
34
- ::Avm::Result.success('Parent and remote ok')
35
- end
36
- end
37
- end
38
- end
@@ -1,59 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'avm/git/subrepo_check'
4
- require 'eac_ruby_utils/core_ext'
5
-
6
- module Avm
7
- module Git
8
- class SubrepoChecks
9
- enable_speaker
10
- enable_simple_cache
11
- attr_accessor :check_remote, :fix_parent
12
- common_constructor :repository
13
-
14
- def add_all_subrepos
15
- add_subrepos(
16
- *repository.command('subrepo', '-q', 'status').execute!.split("\n").map(&:strip)
17
- .select(&:present?)
18
- )
19
- end
20
-
21
- def add_subrepos(*subpath_list)
22
- subpath_list.each do |subpath|
23
- subpaths.add(subpath)
24
- end
25
- reset_cache
26
- self
27
- end
28
-
29
- def check_options
30
- { fix_parent: fix_parent, check_remote: check_remote }
31
- end
32
-
33
- def show_result
34
- checks.each(&:show_result)
35
- infov 'Result', result.label
36
- end
37
-
38
- private
39
-
40
- def checks_uncached
41
- subpaths.map do |subpath|
42
- ::Avm::Git::SubrepoCheck.new(repository.subrepo(subpath), check_options)
43
- end
44
- end
45
-
46
- def result_uncached
47
- error_count = checks.count { |check| check.result.error? }
48
- ::Avm::Result.success_or_error(
49
- error_count.zero?,
50
- "#{error_count} of #{checks.count} subrepos failed"
51
- )
52
- end
53
-
54
- def subpaths
55
- @subpaths ||= ::Set.new
56
- end
57
- end
58
- end
59
- end
data/lib/avm/git.rb DELETED
@@ -1,10 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'eac_ruby_utils/require_sub'
4
- ::EacRubyUtils.require_sub(__FILE__)
5
-
6
- module Avm
7
- module Git
8
- DEFAULT_REMOTE_NAME = 'origin'
9
- end
10
- end