avm 0.5.0 → 0.6.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/registry/base.rb +65 -0
- data/lib/avm/registry.rb +29 -0
- data/lib/avm/rspec/setup.rb +22 -0
- data/lib/avm/rspec/shared_examples/in_avm_registry.rb +11 -0
- data/lib/avm/rspec/shared_examples/not_in_avm_registry.rb +14 -0
- data/lib/avm/{git/organize.rb → rspec.rb} +2 -4
- data/lib/avm/scms/base.rb +28 -0
- data/lib/avm/scms/commit.rb +43 -0
- data/lib/avm/source_stereotypes/base.rb +21 -0
- data/lib/avm/sources/base.rb +22 -0
- data/lib/avm/version.rb +1 -1
- metadata +13 -67
- data/lib/avm/files/appendable/file_content.rb +0 -24
- data/lib/avm/files/appendable/plain_directory.rb +0 -25
- data/lib/avm/files/appendable/resource_base.rb +0 -13
- data/lib/avm/files/appendable/tar_output_command.rb +0 -26
- data/lib/avm/files/appendable/templatized_directory.rb +0 -29
- data/lib/avm/files/appendable.rb +0 -55
- data/lib/avm/files/appender.rb +0 -11
- data/lib/avm/files/deploy.rb +0 -71
- data/lib/avm/files/formatter/formats/base.rb +0 -62
- data/lib/avm/files/formatter/formats/generic_plain.rb +0 -34
- data/lib/avm/files/formatter/formats/html.rb +0 -45
- data/lib/avm/files/formatter/formats/javascript.rb +0 -24
- data/lib/avm/files/formatter/formats/json.rb +0 -27
- data/lib/avm/files/formatter/formats/php.rb +0 -22
- data/lib/avm/files/formatter/formats/python.rb +0 -22
- data/lib/avm/files/formatter/formats/ruby.rb +0 -22
- data/lib/avm/files/formatter/formats/xml.rb +0 -28
- data/lib/avm/files/formatter/formats.rb +0 -13
- data/lib/avm/files/formatter/utf8_assert.rb +0 -74
- data/lib/avm/files/formatter.rb +0 -90
- data/lib/avm/files/rotate.rb +0 -107
- data/lib/avm/files.rb +0 -9
- data/lib/avm/git/auto_commit/commit_info.rb +0 -23
- data/lib/avm/git/auto_commit/rules/base.rb +0 -39
- data/lib/avm/git/auto_commit/rules/last.rb +0 -19
- data/lib/avm/git/auto_commit/rules/manual.rb +0 -45
- data/lib/avm/git/auto_commit/rules/new.rb +0 -24
- data/lib/avm/git/auto_commit/rules/nth.rb +0 -31
- data/lib/avm/git/auto_commit/rules/unique.rb +0 -21
- data/lib/avm/git/auto_commit/rules.rb +0 -31
- data/lib/avm/git/auto_commit_path/ruby.rb +0 -20
- data/lib/avm/git/auto_commit_path.rb +0 -28
- data/lib/avm/git/commit/class_methods.rb +0 -31
- data/lib/avm/git/commit/deploy.rb +0 -38
- data/lib/avm/git/commit/deploy_methods.rb +0 -19
- data/lib/avm/git/commit/diff_tree_line.rb +0 -32
- data/lib/avm/git/commit/file.rb +0 -46
- data/lib/avm/git/commit.rb +0 -59
- data/lib/avm/git/file_auto_fixup.rb +0 -83
- data/lib/avm/git/issue/complete/commits.rb +0 -42
- data/lib/avm/git/issue/complete/git_subrepos.rb +0 -23
- data/lib/avm/git/issue/complete/local_branch.rb +0 -54
- data/lib/avm/git/issue/complete/local_tag.rb +0 -39
- data/lib/avm/git/issue/complete/push.rb +0 -54
- data/lib/avm/git/issue/complete/remote.rb +0 -33
- data/lib/avm/git/issue/complete/test.rb +0 -45
- data/lib/avm/git/issue/complete/tracker.rb +0 -28
- data/lib/avm/git/issue/complete/validation.rb +0 -31
- data/lib/avm/git/issue/complete/validations.rb +0 -53
- data/lib/avm/git/issue/complete/working_tree.rb +0 -19
- data/lib/avm/git/issue/complete.rb +0 -51
- data/lib/avm/git/issue/deliver.rb +0 -56
- data/lib/avm/git/issue.rb +0 -11
- data/lib/avm/git/organize/reference_update.rb +0 -34
- data/lib/avm/git/organize/repository.rb +0 -76
- data/lib/avm/git/revision_test.rb +0 -105
- data/lib/avm/git/subrepo_check/parent.rb +0 -51
- data/lib/avm/git/subrepo_check/remote.rb +0 -89
- data/lib/avm/git/subrepo_check/show_result.rb +0 -32
- data/lib/avm/git/subrepo_check.rb +0 -38
- data/lib/avm/git/subrepo_checks.rb +0 -59
- 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
|