eac_launcher 0.2.1 → 0.2.2
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
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: be146005c131fcd24f8226cac90684e1e6580e66
|
4
|
+
data.tar.gz: 3699b4549409d7a83879078e8938e455d0767f16
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 48db93c8e6905615edf42facb4e248964180355dc709e568b03954e23f3abea7d210b6f50102ac40156a54eb93da2aeee9bea6f5071de91c123833d30f5d2b3e
|
7
|
+
data.tar.gz: 430bb4b45fe6ff30a9cd6e919fcdb5467343c915f3bfc42f5779939c9c4843d0da08c85e91ac4946c5bc656986960715d95abf91cec28bf2455ecf3aede19835
|
@@ -0,0 +1,22 @@
|
|
1
|
+
module EacLauncher
|
2
|
+
module Git
|
3
|
+
module SubWarpBase
|
4
|
+
private
|
5
|
+
|
6
|
+
def parent_instance_uncached
|
7
|
+
r = find_parent_instance(instance.parent)
|
8
|
+
return r if r
|
9
|
+
::EacLauncher::Instances::Error.new('Git parent not found')
|
10
|
+
end
|
11
|
+
|
12
|
+
def find_parent_instance(current)
|
13
|
+
return current if current.stereotype?(::EacLauncher::Stereotypes::Git)
|
14
|
+
current.parent ? find_parent_instance(current.parent) : nil
|
15
|
+
end
|
16
|
+
|
17
|
+
def to_parent_git_path
|
18
|
+
instance.logical.gsub(%r{\A#{Regexp.quote(parent_instance.logical)}/}, '')
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -9,8 +9,12 @@ module EacLauncher
|
|
9
9
|
base.extend(ClassMethods)
|
10
10
|
end
|
11
11
|
|
12
|
+
def git_stereotypes
|
13
|
+
stereotypes.select { |c| c.name.demodulize.downcase.match('git') }
|
14
|
+
end
|
15
|
+
|
12
16
|
def nogit_stereotypes
|
13
|
-
stereotypes
|
17
|
+
stereotypes - git_stereotypes
|
14
18
|
end
|
15
19
|
end
|
16
20
|
|
@@ -1,7 +1,10 @@
|
|
1
|
+
require 'eac_launcher/git/sub_warp_base'
|
2
|
+
|
1
3
|
module EacLauncher
|
2
4
|
module Stereotypes
|
3
5
|
class GitSubrepo
|
4
6
|
class Warp < ::EacLauncher::Paths::Real
|
7
|
+
include ::EacLauncher::Git::SubWarpBase
|
5
8
|
include ::Eac::SimpleCache
|
6
9
|
|
7
10
|
attr_reader :instance
|
@@ -13,20 +16,20 @@ module EacLauncher
|
|
13
16
|
push_to_aux
|
14
17
|
reset
|
15
18
|
assert_target_remote
|
16
|
-
super(
|
19
|
+
super(warped_git)
|
17
20
|
end
|
18
21
|
|
19
22
|
private
|
20
23
|
|
21
24
|
def check_parent
|
22
|
-
return if
|
23
|
-
|
25
|
+
return if parent_git_warped.rev_parse(subrepo_parent_hash) &&
|
26
|
+
parent_git_warped.descendant?('HEAD', subrepo_parent_hash)
|
24
27
|
raise EacLauncher::Instances::Error, "Subrepo parent hash \"#{subrepo_parent_hash}\""\
|
25
|
-
" not found in \"#{
|
28
|
+
" not found in \"#{parent_git_warped}\""
|
26
29
|
end
|
27
30
|
|
28
31
|
def subrepo_parent_hash
|
29
|
-
data =
|
32
|
+
data = parent_git_warped.subrepo_status(to_parent_git_path)
|
30
33
|
h = data['Pull Parent']
|
31
34
|
return h if h.present?
|
32
35
|
raise EacLauncher::Instances::Error, "Subrepo parent hash is blank: #{data}"
|
@@ -36,15 +39,7 @@ module EacLauncher
|
|
36
39
|
::EacLauncher::Git::Base.new(aux_path).init_bare
|
37
40
|
end
|
38
41
|
|
39
|
-
def
|
40
|
-
instance.parent
|
41
|
-
end
|
42
|
-
|
43
|
-
def parent_git_uncached
|
44
|
-
::EacLauncher::Git::Base.new(parent_instance.real)
|
45
|
-
end
|
46
|
-
|
47
|
-
def parent_cache_git_uncached
|
42
|
+
def parent_git_warped_uncached
|
48
43
|
::EacLauncher::Git::Base.new(parent_instance.warped)
|
49
44
|
end
|
50
45
|
|
@@ -52,32 +47,28 @@ module EacLauncher
|
|
52
47
|
instance.cache_path('subrepo_aux_git_repository')
|
53
48
|
end
|
54
49
|
|
55
|
-
def
|
50
|
+
def warped_git_uncached
|
56
51
|
::EacLauncher::Git::Base.new(instance.cache_path('git_repository'))
|
57
52
|
end
|
58
53
|
|
59
54
|
def push_to_aux
|
60
|
-
|
61
|
-
h =
|
62
|
-
|
63
|
-
end
|
64
|
-
|
65
|
-
def subrepo_subdir
|
66
|
-
instance.to_parent_path.gsub(%r{\A/+}, '')
|
55
|
+
parent_git_warped.execute!('subrepo', 'branch', to_parent_git_path, '-fF')
|
56
|
+
h = parent_git_warped.rev_parse("subrepo/#{to_parent_git_path}", true)
|
57
|
+
parent_git_warped.execute!('push', aux_path, "#{h}:refs/heads/master", '--force')
|
67
58
|
end
|
68
59
|
|
69
60
|
def reset
|
70
|
-
::EacLauncher::Git::MirrorUpdate.new(
|
61
|
+
::EacLauncher::Git::MirrorUpdate.new(warped_git, aux_path, 'master')
|
71
62
|
end
|
72
63
|
|
73
64
|
def assert_target_remote
|
74
|
-
|
75
|
-
|
65
|
+
warped_git.assert_remote_url(::EacLauncher::Git::WarpBase::TARGET_REMOTE,
|
66
|
+
target_remote_url)
|
76
67
|
end
|
77
68
|
|
78
69
|
def target_remote_url
|
79
70
|
::EacLauncher::Vendor::Github.to_ssh_url(
|
80
|
-
|
71
|
+
parent_git_warped.subrepo_remote_url(to_parent_git_path)
|
81
72
|
)
|
82
73
|
end
|
83
74
|
end
|
@@ -2,25 +2,23 @@ module EacLauncher
|
|
2
2
|
module Stereotypes
|
3
3
|
class GitSubtree
|
4
4
|
class Warp < ::EacLauncher::Git::WarpBase
|
5
|
+
include ::EacLauncher::Git::SubWarpBase
|
6
|
+
|
5
7
|
private
|
6
8
|
|
7
9
|
def current_ref
|
8
10
|
instance.cache_key("git_subtree.parent.#{cache_git.git.object('HEAD').sha}") do
|
9
|
-
cache_git.subtree_split(
|
11
|
+
cache_git.subtree_split(to_parent_git_path)
|
10
12
|
end
|
11
13
|
end
|
12
14
|
|
13
15
|
def source_instance
|
14
|
-
|
16
|
+
parent_instance
|
15
17
|
end
|
16
18
|
|
17
19
|
def source_remote_name
|
18
20
|
instance.project_name
|
19
21
|
end
|
20
|
-
|
21
|
-
def to_parent_path
|
22
|
-
instance.to_parent_path.gsub(%r{\A/+}, '')
|
23
|
-
end
|
24
22
|
end
|
25
23
|
end
|
26
24
|
end
|
data/lib/eac_launcher/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: eac_launcher
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.2
|
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: 2018-05-
|
11
|
+
date: 2018-05-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -157,6 +157,7 @@ files:
|
|
157
157
|
- lib/eac_launcher/git/error.rb
|
158
158
|
- lib/eac_launcher/git/mirror_update.rb
|
159
159
|
- lib/eac_launcher/git/publish_base.rb
|
160
|
+
- lib/eac_launcher/git/sub_warp_base.rb
|
160
161
|
- lib/eac_launcher/git/warp_base.rb
|
161
162
|
- lib/eac_launcher/instances/base.rb
|
162
163
|
- lib/eac_launcher/instances/base/cache.rb
|