git_cli 0.11.2 → 0.11.4

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: f0aee5685cf56c36288182240355094917487d664010a6caa90e3d78421450d4
4
- data.tar.gz: 33f3358634f113136a64c5452a07df9ecb19c81970d19aa6c773e5ce6e4990f0
3
+ metadata.gz: 8c844000e4bc30d57687dc1e43d0fc0e46744db06376e00508c6d534be047d54
4
+ data.tar.gz: 54ab8c78a819454e0d037c8b73b66003757fc735e828700749bf8010504233c2
5
5
  SHA512:
6
- metadata.gz: 7ff51d738b56ce0ff39e7b1477b66a3d517724f4a6a9a6c9c0ba1f552d205c7f39e3955f1e1ddee666ad3cb75657b4ebe8a0f104986c280c4c44913235b4973c
7
- data.tar.gz: a27a52eb0b278877a8118f6233d053ddb0d7dcbb3c9c798e8009a61ce336d9647f06fba955b38a7c484c6430085ed93e5cd9a843781bfa38e0e01dfc7c8dbe9d
6
+ metadata.gz: 20314f09b8b43ea58b8e19e7fc9f9260622b45b9c63ee84b754f0f59ebe52e89b41142c6c2df9e98480d6ec1807e9f814877c4f43344b9b6bbcd27952c4d1c12
7
+ data.tar.gz: 7054bf58a5bb2fb0221d5b6dbf5c28be0371e0f1a02e63ab8d47765c04a77e2a707e770da14c3ec2089844998c15ddbe0e40b05c410092ed640782a9fc88d0cd
data/.gitignore CHANGED
@@ -11,3 +11,4 @@ tags
11
11
  *.log
12
12
 
13
13
  .rake_tasks~
14
+ Gemfile.lock_
data/.release_history.yml CHANGED
@@ -6,3 +6,7 @@ git_cli:
6
6
  :timestamp: 1676968140.9885945
7
7
  - :version: 0.11.1
8
8
  :timestamp: 1676968358.595788
9
+ - :version: 0.11.2
10
+ :timestamp: 1676968433.2215726
11
+ - :version: 0.11.3
12
+ :timestamp: 1680769802.83927
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- git_cli (0.11.0)
4
+ git_cli (0.11.4)
5
5
  gvcs
6
6
  ptools (~> 1.4.0)
7
7
  teLogger
@@ -10,28 +10,38 @@ PATH
10
10
  GEM
11
11
  remote: https://rubygems.org/
12
12
  specs:
13
- base58 (0.2.3)
14
- devops_assist (0.3.1)
13
+ colorize (0.8.1)
14
+ devops_assist (0.3.11)
15
15
  git_cli
16
- git_cli_prompt
16
+ git_cli_prompt (~> 0.3.3)
17
17
  gvcs
18
18
  teLogger
19
19
  toolrack
20
20
  tty-prompt
21
- git_cli_prompt (0.3.1)
21
+ gem-release (2.2.2)
22
+ git_cli_prompt (0.3.4)
22
23
  teLogger
23
24
  toolrack
24
25
  tty-prompt
25
- gvcs (0.1.1)
26
- minitest (5.17.0)
26
+ gvcs (0.1.2)
27
+ minitest (5.18.0)
27
28
  pastel (0.8.0)
28
29
  tty-color (~> 0.5)
29
30
  ptools (1.4.3)
30
31
  rake (12.3.3)
32
+ release-gem (0.1.10)
33
+ colorize
34
+ git_cli
35
+ gvcs
36
+ teLogger
37
+ toolrack
38
+ tty-command
39
+ tty-prompt
31
40
  teLogger (0.2.2)
32
- toolrack (0.20.0)
33
- base58
41
+ toolrack (0.22.0)
34
42
  tty-color (0.6.0)
43
+ tty-command (0.10.1)
44
+ pastel (~> 0.8)
35
45
  tty-cursor (0.7.1)
36
46
  tty-prompt (0.23.1)
37
47
  pastel (~> 0.8)
@@ -48,9 +58,11 @@ PLATFORMS
48
58
 
49
59
  DEPENDENCIES
50
60
  devops_assist
61
+ gem-release
51
62
  git_cli!
52
63
  minitest (~> 5.0)
53
64
  rake (~> 12.0)
65
+ release-gem
54
66
 
55
67
  BUNDLED WITH
56
68
  2.2.28
data/Rakefile CHANGED
@@ -10,3 +10,4 @@ Rake::TestTask.new(:test) do |t|
10
10
  end
11
11
 
12
12
  task :default => :test
13
+ require 'release/gem'
data/git_cli.gemspec CHANGED
@@ -35,4 +35,6 @@ Gem::Specification.new do |spec|
35
35
 
36
36
  #spec.add_development_dependency 'devops_helper' #, ">= 0.2.0"
37
37
  spec.add_development_dependency 'devops_assist' #, ">= 0.2.0"
38
+ spec.add_development_dependency 'gem-release'
39
+ spec.add_development_dependency 'release-gem'
38
40
  end
@@ -20,7 +20,7 @@ module GitCli
20
20
 
21
21
  class CommitError < StandardError; end
22
22
 
23
- def add_to_staging(paths)
23
+ def add_to_staging(*paths)
24
24
  check_vcs
25
25
 
26
26
  raise_if_empty(paths, "Given path to add is empty", GitCliException)
@@ -33,7 +33,7 @@ module GitCli
33
33
  cmd << "&&"
34
34
  cmd << @vcs.exe_path
35
35
  cmd << "add"
36
- cmd.append(paths)
36
+ cmd.append(paths.join(" "))
37
37
  cmdln = cmd.join " "
38
38
 
39
39
  log_debug "Add : #{cmdln}"
@@ -126,12 +126,13 @@ module GitCli
126
126
  log_debug "Commit : #{cmdln}"
127
127
 
128
128
  os_exec(cmdln) do |st, res|
129
- res.strip!
130
- if not st.success?
131
- raise CommitError, res
132
- else
133
- res
134
- end
129
+ [st.success?, res.strip!]
130
+ #res.strip!
131
+ #if not st.success?
132
+ # raise CommitError, res
133
+ #else
134
+ # res
135
+ #end
135
136
  end
136
137
 
137
138
  end # commit
data/lib/git_cli/delta.rb CHANGED
@@ -30,7 +30,19 @@ module GitCli
30
30
 
31
31
  # support sort
32
32
  def <=>(val)
33
- @path <=> val.path
33
+ if val.is_a?(VCSItem)
34
+ @path <=> val.path
35
+ else
36
+ false
37
+ end
38
+ end
39
+
40
+ def ==(val)
41
+ if val.is_a?(VCSItem)
42
+ @path == val.path
43
+ else
44
+ false
45
+ end
34
46
  end
35
47
  end
36
48
  class NewDir < VCSItem
@@ -394,13 +406,25 @@ module GitCli
394
406
 
395
407
  def is_local_ahead_of_remote?(remote_name, branch = "main")
396
408
 
397
- calculate_distance("#{remote_name}/#{branch}", "HEAD")
409
+ st, res = calculate_distance("#{remote_name}/#{branch}", "HEAD")
410
+ if st
411
+ res.to_i > 0
412
+ else
413
+ # not push before
414
+ true
415
+ end
398
416
 
399
417
  end
400
418
 
401
419
  def is_remote_ahead_of_local?(remote_name, branch = "main")
402
420
 
403
- calculate_distance("HEAD","#{remote_name}/#{branch}")
421
+ st, res = calculate_distance("HEAD","#{remote_name}/#{branch}")
422
+ if st
423
+ res.to_i > 0
424
+ else
425
+ # never pull before?
426
+ true
427
+ end
404
428
  end
405
429
 
406
430
  end
data/lib/git_cli/diff.rb CHANGED
@@ -74,12 +74,12 @@ module GitCli
74
74
  log_debug "#{opts[:log_tag]} : #{cmdln} "
75
75
 
76
76
  res = os_exec(cmdln) do |st, res|
77
-
78
- if st.success?
79
- [true, res.strip!]
80
- else
81
- [false, res]
82
- end
77
+ [st.success?, res.strip!]
78
+ #if st.success?
79
+ # [true, res.strip!]
80
+ #else
81
+ # [false, res]
82
+ #end
83
83
  end
84
84
 
85
85
  end
@@ -20,9 +20,10 @@ module GitCli
20
20
  module Ignore
21
21
 
22
22
  def ignore(*val)
23
- with_ignore_file do |f|
23
+ with_ignore_file("a+") do |f|
24
+ cont = f.read
24
25
  val.each do |v|
25
- f.puts v
26
+ f.puts(v) if (cont =~ /^#{v}\Z/) == nil
26
27
  end
27
28
  #f.puts val
28
29
  end
@@ -62,14 +63,15 @@ module GitCli
62
63
  end
63
64
 
64
65
  private
65
- def with_ignore_file(&block)
66
+ def with_ignore_file(mode = "a", &block)
67
+ mode = "a" if is_empty?(mode)
66
68
  if block
67
69
  st, root = workspace_root
68
70
  root.strip!
69
71
  if st
70
72
  igPath = File.join(root,".gitignore")
71
73
  FileUtils.touch(igPath) if not File.exist?(igPath)
72
- File.open(igPath,"a") do |f|
74
+ File.open(igPath,mode) do |f|
73
75
  block.call(f)
74
76
  end
75
77
  else
data/lib/git_cli/tags.rb CHANGED
@@ -347,5 +347,32 @@ module GitCli
347
347
 
348
348
  end # checkout_tag
349
349
 
350
+ def tag_points_at?(dest = "HEAD")
351
+
352
+ #raise_if_empty(tag, "Tag name cannot be empty", GitCliException)
353
+
354
+ check_vcs
355
+
356
+ cmd = []
357
+ cmd << "cd"
358
+ cmd << @wsPath
359
+ cmd << "&&"
360
+ cmd << @vcs.exe_path
361
+ cmd << "tag"
362
+ cmd << "--points-at"
363
+ cmd << dest
364
+
365
+ cmdln = cmd.join(" ")
366
+ log_debug "Check if current tag is pointing to #{dest}"
367
+ res = os_exec(cmdln) do |st, res|
368
+ if st.success?
369
+ not_empty?(res.strip)
370
+ else
371
+ raise TagError, res
372
+ end
373
+ end
374
+
375
+ end # is_tag_points_at?
376
+
350
377
  end
351
378
  end
@@ -15,5 +15,5 @@
15
15
  # along with this program. If not, see <http://www.gnu.org/licenses/>.
16
16
 
17
17
  module GitCli
18
- VERSION = "0.11.2"
18
+ VERSION = "0.11.4"
19
19
  end
data/lib/git_cli.rb CHANGED
@@ -51,14 +51,18 @@ module GitCli
51
51
 
52
52
  # redirect stderr to stdout
53
53
  path = "#{path} 2>&1"
54
- res = Antrapol::ToolRack::ProcessUtilsEngine.exec(path)
55
- if block
56
- # $?.exitstatus => error codes
57
- # $?.success? => true / false
58
- # $?.pid => child PID
59
- block.call($?, res)
54
+ if dry_run
55
+ block.call(:dry_run_command, path) if block
60
56
  else
61
- res.strip
57
+ res = Antrapol::ToolRack::ProcessUtilsEngine.exec(path)
58
+ if block
59
+ # $?.exitstatus => error codes
60
+ # $?.success? => true / false
61
+ # $?.pid => child PID
62
+ block.call($?, res)
63
+ else
64
+ res.strip
65
+ end
62
66
  end
63
67
  end
64
68
 
@@ -73,6 +77,14 @@ module GitCli
73
77
  def log_warn(str)
74
78
  GitCli::Global.instance.logger.warn(str)
75
79
  end
80
+
81
+ def dry_run=(val)
82
+ @dry_run = val if not_empty?(val) and is_bool?(val)
83
+ end
84
+
85
+ def dry_run
86
+ @dry_run.nil? ? false : @dry_run
87
+ end
76
88
  end # common operations
77
89
 
78
90
  class Gvcs::Vcs
@@ -202,9 +214,9 @@ module GitCli
202
214
  res = os_exec(cmdln) do |st, res|
203
215
 
204
216
  if st.success?
205
- @wsRoot = [true, res]
217
+ @wsRoot = [true, res.strip]
206
218
  else
207
- @wsRoot = [false, res]
219
+ @wsRoot = [false, res.strip]
208
220
  end
209
221
  end
210
222
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: git_cli
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.11.2
4
+ version: 0.11.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chris Liaw
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-02-21 00:00:00.000000000 Z
11
+ date: 2023-04-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: teLogger
@@ -80,6 +80,34 @@ dependencies:
80
80
  - - ">="
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: gem-release
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: release-gem
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
83
111
  description: Interface to GIT via command line interface instead of some sor of library
84
112
  email:
85
113
  - chrisliaw@antrapol.com
@@ -140,7 +168,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
140
168
  - !ruby/object:Gem::Version
141
169
  version: '0'
142
170
  requirements: []
143
- rubygems_version: 3.2.22
171
+ rubygems_version: 3.4.10
144
172
  signing_key:
145
173
  specification_version: 4
146
174
  summary: GIT command line interface