eac_launcher 0.6.2 → 0.6.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 565fc4ab1f27c68e3cfd0004bdae700508cedf36b1e6ada6e768f77e6a47fbd9
4
- data.tar.gz: 18c26e86d04b2e1e0bf0f058af24ef3f6402132e0fff33cac07ff6dba2f25754
3
+ metadata.gz: 7072e95fd5469a713475499353cb9afaa0d1c26fe7c75f12118ba8ed4b9fa741
4
+ data.tar.gz: c7baa168a8b4032895bfe9671ef666b9c78226e0472ae0d1ef61bf624c321359
5
5
  SHA512:
6
- metadata.gz: ef72bcbda016a06d3c67263dc0edc9da63909365d3680a6d6fc38669ec8abf4b05215478fa7b76a1dbb797cdfbbf38326a2e12f5fbe3f4c28dc8e499689bc892
7
- data.tar.gz: 36c0cbb61f3085af3b019b752dffc11a880e405ce0c8c8231094b2de5288dbe06bcf9d8350d9348c94c7d2fc5521ade3bff497b8ad2706ae836aa03334580436
6
+ metadata.gz: 39e340849a2e5031388fac6b0ddb457aaee69702b99cc035e6d3c9790fc421763ba8da8aead169a462350ac787318220c2de899b8bdb4b4368811ef7767815bc
7
+ data.tar.gz: 808fc5482fb750e82d53a25e71a6a51172e7ee7c843cf85bb2760e24fa0335fa1798a18e4257044a8a5bafef0ec6b0054436bf50748a2de58522ac497b94dfe4
@@ -5,6 +5,7 @@ require 'eac_ruby_utils/envs'
5
5
  require 'eac_launcher/paths/real'
6
6
  require 'eac_launcher/git/base/underlying'
7
7
  require 'eac_launcher/git/base/subrepo'
8
+ require 'eac_launcher/git/error'
8
9
 
9
10
  module EacLauncher
10
11
  module Git
@@ -12,6 +13,7 @@ module EacLauncher
12
13
  include ::EacRubyUtils::SimpleCache
13
14
  include ::EacLauncher::Git::Base::Subrepo
14
15
  include ::EacLauncher::Git::Base::Underlying
16
+ require_relative ::File.join(__dir__, 'base', '_remotes')
15
17
 
16
18
  def init_bare
17
19
  FileUtils.mkdir_p(self)
@@ -28,19 +30,6 @@ module EacLauncher
28
30
  raise "Reference \"#{ref}\" not found"
29
31
  end
30
32
 
31
- def remote_hashs(remote_name)
32
- r = {}
33
- execute!(['ls-remote', remote_name]).each_line do |line|
34
- x = line.strip.split(/\s+/)
35
- r[x[1]] = x[0]
36
- end
37
- r
38
- end
39
-
40
- def remote_exist?(remote_name)
41
- git.remote(remote_name).url.present?
42
- end
43
-
44
33
  def descendant?(descendant, ancestor)
45
34
  base = merge_base(descendant, ancestor)
46
35
  return false if base.blank?
@@ -64,19 +53,6 @@ module EacLauncher
64
53
  execute!('subtree', '-q', 'split', '-P', prefix).strip
65
54
  end
66
55
 
67
- def assert_remote_url(remote_name, url)
68
- r = git.remote(remote_name)
69
- if !r.url || r.url != url
70
- r.remove if r.url
71
- git.add_remote(remote_name, url)
72
- end
73
- r
74
- end
75
-
76
- def remote_branch_sha(remote_name, branch_name)
77
- remote_hashs(remote_name)["refs/heads/#{branch_name}"]
78
- end
79
-
80
56
  def push(remote_name, refspecs, options = {})
81
57
  refspecs = [refspecs] unless refspecs.is_a?(Array)
82
58
  args = ['push']
@@ -0,0 +1,36 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_ruby_utils/core_ext'
4
+ require 'eac_launcher/git/remote'
5
+
6
+ module EacLauncher
7
+ module Git
8
+ class Base < ::EacLauncher::Paths::Real
9
+ # @return [EacLauncher::Git::Remote]
10
+ def remote(name)
11
+ ::EacLauncher::Git::Remote.new(self, name)
12
+ end
13
+
14
+ def remote_hashs(remote_name)
15
+ remote(remote_name).ls
16
+ end
17
+
18
+ def remote_exist?(remote_name)
19
+ remote(remote_name).exist?
20
+ end
21
+
22
+ def assert_remote_url(remote_name, url)
23
+ r = git.remote(remote_name)
24
+ if !r.url || r.url != url
25
+ r.remove if r.url
26
+ git.add_remote(remote_name, url)
27
+ end
28
+ r
29
+ end
30
+
31
+ def remote_branch_sha(remote_name, branch_name)
32
+ remote_hashs(remote_name)["refs/heads/#{branch_name}"]
33
+ end
34
+ end
35
+ end
36
+ end
@@ -10,7 +10,7 @@ module EacLauncher
10
10
  include ::EacRubyUtils::SimpleCache
11
11
  include ::EacRubyUtils::Console::Speaker
12
12
 
13
- CHECKERS = %w[remote_fetch publish_remote_no_exist remote_equal remote_following
13
+ CHECKERS = %w[remote_url remote_fetch publish_remote_no_exist remote_equal remote_following
14
14
  local_following].freeze
15
15
 
16
16
  REMOTE_UNAVAILABLE_MESSAGES = ['could not resolve hostname', 'connection timed out',
@@ -28,6 +28,12 @@ module EacLauncher
28
28
 
29
29
  private
30
30
 
31
+ def remote_url_check_result
32
+ return if sgit.remote(remote_name).url.present?
33
+
34
+ ::EacLauncher::Publish::CheckResult.blocked("Remote \"#{remote_name}\" has blank path")
35
+ end
36
+
31
37
  def remote_fetch_check_result
32
38
  remote_fetch
33
39
  nil
@@ -45,7 +51,7 @@ module EacLauncher
45
51
  end
46
52
 
47
53
  def publish_remote_no_exist_check_result
48
- return nil if sgit.remote_exist?(::EacLauncher::Git::WarpBase::TARGET_REMOTE)
54
+ return nil if sgit.remote_exist?(remote_name)
49
55
 
50
56
  ::EacLauncher::Publish::CheckResult.blocked('Remote does not exist')
51
57
  end
@@ -84,7 +90,7 @@ module EacLauncher
84
90
 
85
91
  def publish
86
92
  info 'Pushing...'
87
- sgit.push(::EacLauncher::Git::WarpBase::TARGET_REMOTE, 'HEAD:master',
93
+ sgit.push(remote_name, 'HEAD:master',
88
94
  dryrun: !::EacLauncher::Context.current.publish_options[:confirm])
89
95
  info 'Pushed!'
90
96
  end
@@ -95,12 +101,16 @@ module EacLauncher
95
101
 
96
102
  def remote_sha_uncached
97
103
  remote_fetch
98
- b = sgit.git.branches["#{::EacLauncher::Git::WarpBase::TARGET_REMOTE}/master"]
104
+ b = sgit.git.branches["#{remote_name}/master"]
99
105
  b ? b.gcommit.sha : nil
100
106
  end
101
107
 
102
108
  def remote_fetch_uncached
103
- sgit.fetch(::EacLauncher::Git::WarpBase::TARGET_REMOTE)
109
+ sgit.fetch(remote_name)
110
+ end
111
+
112
+ def remote_name
113
+ ::EacLauncher::Git::WarpBase::TARGET_REMOTE
104
114
  end
105
115
  end
106
116
  end
@@ -0,0 +1,53 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_ruby_utils/core_ext'
4
+
5
+ module EacLauncher
6
+ module Git
7
+ class Remote
8
+ common_constructor :git, :name
9
+
10
+ def exist?
11
+ git.execute!('remote').each_line.any? { |line| line.strip == name }
12
+ end
13
+
14
+ def ls
15
+ execute!(['ls-remote', name]).each_line.map do |line|
16
+ x = line.strip.split(/\s+/)
17
+ [x[1], x[0]]
18
+ end.to_h
19
+ end
20
+
21
+ # +git remote add ...+
22
+ def add(url)
23
+ git.execute!('remote', 'add', name, url)
24
+ end
25
+
26
+ # +git remote rm ...+
27
+ def remove
28
+ git.execute!('remote', 'rm', name)
29
+ end
30
+
31
+ # +git remote get-url ...+
32
+ def url
33
+ git.execute!('remote', 'get-url', name).strip.if_present(nil)
34
+ end
35
+
36
+ # git remote set-url ...
37
+ def url_set(url)
38
+ git.execute!('remote', 'set-url', name, url)
39
+ end
40
+
41
+ # Add or set URL if +url+ is present, remove remote if is blank.
42
+ def url=(url)
43
+ if exist? && url.blank?
44
+ remove
45
+ elsif exist? && self.url != url
46
+ url_set(url)
47
+ elsif !exist?
48
+ add(url)
49
+ end
50
+ end
51
+ end
52
+ end
53
+ end
@@ -2,6 +2,7 @@
2
2
 
3
3
  require 'eac_launcher/git/mirror_update'
4
4
  require 'eac_launcher/vendor/github'
5
+ require 'eac_launcher/stereotypes/git/publish'
5
6
 
6
7
  module EacLauncher
7
8
  module Git
@@ -12,12 +13,12 @@ module EacLauncher
12
13
  class WarpBase < ::EacLauncher::Paths::Real
13
14
  include ::EacRubyUtils::SimpleCache
14
15
 
15
- TARGET_REMOTE = 'target'
16
+ TARGET_REMOTE = ::EacLauncher::Stereotypes::Git::Publish::PUBLISH_GIT_REMOTE_NAME
16
17
 
17
18
  def initialize(instance)
18
19
  @instance = instance
19
20
  cache_git.git.reset_hard(current_ref)
20
- cache_git.assert_remote_url(TARGET_REMOTE, target_remote_url)
21
+ cache_git.remote(TARGET_REMOTE).url = target_remote_url
21
22
  super(path)
22
23
  end
23
24
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module EacLauncher
4
- VERSION = '0.6.2'
4
+ VERSION = '0.6.3'
5
5
  end
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.6.2
4
+ version: 0.6.3
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: 2019-10-07 00:00:00.000000000 Z
11
+ date: 2019-10-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -64,20 +64,14 @@ dependencies:
64
64
  requirements:
65
65
  - - "~>"
66
66
  - !ruby/object:Gem::Version
67
- version: '0.10'
68
- - - ">="
69
- - !ruby/object:Gem::Version
70
- version: 0.10.1
67
+ version: '0.15'
71
68
  type: :runtime
72
69
  prerelease: false
73
70
  version_requirements: !ruby/object:Gem::Requirement
74
71
  requirements:
75
72
  - - "~>"
76
73
  - !ruby/object:Gem::Version
77
- version: '0.10'
78
- - - ">="
79
- - !ruby/object:Gem::Version
80
- version: 0.10.1
74
+ version: '0.15'
81
75
  - !ruby/object:Gem::Dependency
82
76
  name: git
83
77
  requirement: !ruby/object:Gem::Requirement
@@ -151,11 +145,13 @@ files:
151
145
  - lib/eac_launcher/context/settings.rb
152
146
  - lib/eac_launcher/git.rb
153
147
  - lib/eac_launcher/git/base.rb
148
+ - lib/eac_launcher/git/base/_remotes.rb
154
149
  - lib/eac_launcher/git/base/subrepo.rb
155
150
  - lib/eac_launcher/git/base/underlying.rb
156
151
  - lib/eac_launcher/git/error.rb
157
152
  - lib/eac_launcher/git/mirror_update.rb
158
153
  - lib/eac_launcher/git/publish_base.rb
154
+ - lib/eac_launcher/git/remote.rb
159
155
  - lib/eac_launcher/git/sub_warp_base.rb
160
156
  - lib/eac_launcher/git/warp_base.rb
161
157
  - lib/eac_launcher/instances.rb