git_cli 0.5.0 → 0.9.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f1bc52f0f2d65c28d608a1242ed33798a68432c3e8656a1d26e483bb68c25e3f
4
- data.tar.gz: 97627db423f1349bcb7a92a4254ca78919308b08c561c3142544f3584b0036bf
3
+ metadata.gz: 63fdc22895e48a0005e1fcaf0e5dc2291c6fdc26019ae566f1009424d083292c
4
+ data.tar.gz: 5e602e81ea3b378e185add93c6d8fb1ea97c48fc600c784c2e22aaa43beb0e21
5
5
  SHA512:
6
- metadata.gz: 1a6a03d7a909402eefc1b836fe0fe0e2a31735e2e3c58feab4b5d7a11d02ab8a9d66dbaee081f360c0a3e2d7a62b8498583befd321c0d7861f6f06717baffaf3
7
- data.tar.gz: 4c55cbd6993e0bb8dcef1104de2997f86f0eeb40a841e41cc4f482dd0c144b1add17e453d241ade09e9fc4107b577e8e0094419d3a9f54bb599cd015de8d2495
6
+ metadata.gz: a05ced2c8d7ec7b8efcc69ec6d1f41b80e11fbc5b3f1c1f5e7954800fd594d0d98aae0050ebab902d101ee7a7a653a2a989744f77bb7710aba367a10f3cf8719
7
+ data.tar.gz: e4a85fb3684d6b2377bf57ccd1e8e9c7c5b931997e22d1052c24de2a9c21d4792ff5c455e72e63d9e79fd9df863470b28bbb9e07dd8e6ea0e8ec5f29164f9901
data/.gitignore CHANGED
@@ -9,4 +9,5 @@
9
9
  Gemfile.lock
10
10
  tags
11
11
  git_cli-0.1.0.gem
12
- toolrack.log
12
+ *.log
13
+
data/Rakefile CHANGED
@@ -1,6 +1,8 @@
1
1
  require "bundler/gem_tasks"
2
2
  require "rake/testtask"
3
3
 
4
+ require "devops_helper"
5
+
4
6
  Rake::TestTask.new(:test) do |t|
5
7
  t.libs << "test"
6
8
  t.libs << "lib"
data/git_cli.gemspec CHANGED
@@ -27,8 +27,10 @@ Gem::Specification.new do |spec|
27
27
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
28
28
  spec.require_paths = ["lib"]
29
29
 
30
- spec.add_dependency "tlogger", "~> 0.21"
31
- spec.add_dependency "toolrack", "~> 0.4.0"
32
- spec.add_dependency "gvcs", "~> 0.1.0"
30
+ spec.add_dependency "tlogger"
31
+ spec.add_dependency "toolrack"
32
+ spec.add_dependency "gvcs"
33
33
  spec.add_dependency "ptools", "~> 1.4.0"
34
+
35
+ spec.add_development_dependency 'devops_helper' #, ">= 0.2.0"
34
36
  end
@@ -18,6 +18,8 @@
18
18
  module GitCli
19
19
  module AddCommit
20
20
 
21
+ class CommitError < StandardError; end
22
+
21
23
  def add_to_staging(paths)
22
24
  check_vcs
23
25
 
@@ -37,7 +39,13 @@ module GitCli
37
39
  log_debug "Add : #{cmdln}"
38
40
 
39
41
  os_exec(cmdln) do |st, res|
40
- [st.success?, res.strip]
42
+ res.strip!
43
+ if not st.success?
44
+ raise CommitError, res
45
+ else
46
+ res
47
+ end
48
+ #[st.success?, res.strip]
41
49
  end
42
50
  end # add_to_staging
43
51
  alias :add :add_to_staging
@@ -97,6 +105,7 @@ module GitCli
97
105
  check_vcs
98
106
 
99
107
  files = opts[:files] || []
108
+ [files] if not files.is_a?(Array)
100
109
  # have to escape the message for command line purposes
101
110
  msg = message.gsub("\"","\\\"").gsub("\\","\\\\")
102
111
 
@@ -117,10 +126,15 @@ module GitCli
117
126
  log_debug "Commit : #{cmdln}"
118
127
 
119
128
  os_exec(cmdln) do |st, res|
120
- [st.success?, res.strip]
129
+ res.strip!
130
+ if not st.success?
131
+ raise CommitError, res
132
+ else
133
+ res
134
+ end
121
135
  end
122
136
 
123
- end
137
+ end # commit
124
138
 
125
139
  def commit_all(msg)
126
140
  check_vcs
@@ -142,10 +156,17 @@ module GitCli
142
156
  log_debug "Commit All : #{cmdln}"
143
157
 
144
158
  os_exec(cmdln) do |st, res|
145
- [st.success?, res.strip]
159
+ res.strip!
160
+ if not st.success?
161
+ raise CommitError, res
162
+ else
163
+ res.strip
164
+ end
146
165
  end
147
166
 
148
- end
167
+ end # commit_all
168
+
169
+
149
170
 
150
171
  end
151
172
  end
@@ -18,6 +18,8 @@
18
18
 
19
19
  module GitCli
20
20
  module Branch
21
+
22
+ class BranchError < StandardError; end
21
23
 
22
24
  def current_branch
23
25
 
@@ -50,9 +52,11 @@ module GitCli
50
52
  # end
51
53
  #end
52
54
 
53
- [true, res.strip!]
55
+ res.strip
56
+ #[true, res.strip!]
54
57
  else
55
- [false, res]
58
+ raise BranchError, res.strip
59
+ #[false, res]
56
60
  end
57
61
  end
58
62
 
@@ -70,7 +74,8 @@ module GitCli
70
74
  br.concat(rb)
71
75
  end
72
76
 
73
- [true, br]
77
+ br
78
+ #[true, br]
74
79
 
75
80
  end # all_branches
76
81
 
@@ -95,9 +100,11 @@ module GitCli
95
100
  res.each_line do |l|
96
101
  b << l.strip
97
102
  end
98
- [true, b]
103
+ b
104
+ #[true, b]
99
105
  else
100
- [false, res]
106
+ raise BranchError, res.strip
107
+ #[false, res]
101
108
  end
102
109
  end
103
110
 
@@ -125,9 +132,11 @@ module GitCli
125
132
  b << l.strip
126
133
  end
127
134
 
128
- [true, b]
135
+ #[true, b]
136
+ b
129
137
  else
130
- [false, res]
138
+ raise BranchError, res.strip
139
+ #[false, res]
131
140
  end
132
141
  end
133
142
 
@@ -151,9 +160,11 @@ module GitCli
151
160
  log_debug "Switch branch : #{cmdln}"
152
161
  res = os_exec(cmdln) do |st, res|
153
162
  if st.success?
154
- [true, res.strip]
163
+ res.strip
164
+ #[true, res.strip]
155
165
  else
156
- [false, res]
166
+ raise BranchError, res.strip
167
+ #[false, res]
157
168
  end
158
169
  end
159
170
 
@@ -180,9 +191,11 @@ module GitCli
180
191
  res = os_exec(cmdln) do |st, res|
181
192
 
182
193
  if st.success?
183
- [true, res.strip]
194
+ res.strip
195
+ #[true, res.strip]
184
196
  else
185
- [false, res]
197
+ raise BranchError, res.strip
198
+ #[false, res]
186
199
  end
187
200
  end
188
201
 
@@ -205,9 +218,11 @@ module GitCli
205
218
  res = os_exec(cmdln) do |st, res|
206
219
 
207
220
  if st.success?
208
- [true, res.strip]
221
+ res.strip
222
+ #[true, res.strip]
209
223
  else
210
- [false, res]
224
+ raise BranchError, res.strip
225
+ #[false, res]
211
226
  end
212
227
  end
213
228
 
@@ -232,9 +247,11 @@ module GitCli
232
247
  res = os_exec(cmdln) do |st, res|
233
248
 
234
249
  if st.success?
235
- [true, res.strip]
250
+ res.strip
251
+ #[true, res.strip]
236
252
  else
237
- [false, res]
253
+ raise BranchError, res.strip
254
+ #[false, res]
238
255
  end
239
256
  end
240
257
 
@@ -260,9 +277,11 @@ module GitCli
260
277
  res = os_exec(cmdln) do |st, res|
261
278
 
262
279
  if st.success?
263
- [true, res.strip]
280
+ res.strip
281
+ #[true, res.strip]
264
282
  else
265
- [false, res]
283
+ raise BranchError, res.strip
284
+ #[false, res]
266
285
  end
267
286
 
268
287
  end
data/lib/git_cli/delta.rb CHANGED
@@ -19,6 +19,102 @@
19
19
  module GitCli
20
20
  module Delta
21
21
 
22
+ class GitDeltaError < StandardError; end
23
+ class VCSItem
24
+ attr_reader :path, :full, :type
25
+ def initialize(type, path, full)
26
+ @type = type
27
+ @path = path
28
+ @full = full
29
+ end
30
+
31
+ # support sort
32
+ def <=>(val)
33
+ @path <=> val.path
34
+ end
35
+ end
36
+ class NewDir < VCSItem
37
+ def initialize(path, full)
38
+ super(:dir, path, full)
39
+ end
40
+ def to_s
41
+ "[N] #{@path}"
42
+ end
43
+ end
44
+ class NewFile < VCSItem
45
+ def initialize(path, full)
46
+ super(:file, path, full)
47
+ end
48
+ def to_s
49
+ "[N] #{@path}"
50
+ end
51
+ end
52
+ class ModifiedDir < VCSItem
53
+ def initialize(path, full)
54
+ super(:dir, path, full)
55
+ end
56
+ def to_s
57
+ "[M] #{@path}"
58
+ end
59
+ end
60
+ class ModifiedFile < VCSItem
61
+ def initialize(path, full)
62
+ super(:file, path, full)
63
+ end
64
+ def to_s
65
+ "[M] #{@path}"
66
+ end
67
+ end
68
+ class DeletedDir < VCSItem
69
+ def initialize(path, full)
70
+ super(:dir, path, full)
71
+ end
72
+ def to_s
73
+ "[D] #{@path}"
74
+ end
75
+ end
76
+ class DeletedFile < VCSItem
77
+ def initialize(path, full)
78
+ super(:file, path, full)
79
+ end
80
+ def to_s
81
+ "[D] #{@path}"
82
+ end
83
+ end
84
+ class StagedDir < VCSItem
85
+ def initialize(path, full)
86
+ super(:dir, path, full)
87
+ end
88
+ def to_s
89
+ "[S] #{@path}"
90
+ end
91
+ end
92
+ class StagedFile < VCSItem
93
+ def initialize(path, full)
94
+ super(:file, path, full)
95
+ end
96
+ def to_s
97
+ "[S] #{@path}"
98
+ end
99
+ end
100
+ class ConflictedDir < VCSItem
101
+ def initialize(path, full)
102
+ super(:dir, path, full)
103
+ end
104
+ def to_s
105
+ "[C] #{@path}"
106
+ end
107
+ end
108
+ class ConflictedFile < VCSItem
109
+ def initialize(path, full)
110
+ super(:file, path, full)
111
+ end
112
+ def to_s
113
+ "[C] #{@path}"
114
+ end
115
+ end
116
+
117
+
22
118
  def status
23
119
 
24
120
  check_vcs
@@ -34,11 +130,16 @@ module GitCli
34
130
  log_debug "Status : #{cmdln}"
35
131
  res = os_exec(cmdln) do |st, res|
36
132
 
37
- if st.success?
38
- [true, res]
133
+ if not st.success?
134
+ raise GitDeltaError, res
39
135
  else
40
- [false, res]
136
+ res
41
137
  end
138
+ #if st.success?
139
+ # [true, res]
140
+ #else
141
+ # [false, res]
142
+ #end
42
143
  end
43
144
 
44
145
  end # status
@@ -52,6 +153,7 @@ module GitCli
52
153
  cmd << @wsPath
53
154
  cmd << "&&"
54
155
  cmd << @vcs.exe_path
156
+ # list only non staged modifications
55
157
  cmd << "diff --name-only --diff-filter=M"
56
158
 
57
159
  cmdln = cmd.join(" ")
@@ -60,19 +162,21 @@ module GitCli
60
162
  files = []
61
163
  res = os_exec(cmdln) do |st, res|
62
164
 
63
- if st.success?
165
+ if not st.success?
166
+ raise GitDeltaError, res
167
+ else
64
168
  res.each_line do |l|
65
169
  l.chomp!
66
- if File.directory?(File.join(@wsPath,l))
67
- dirs << l
170
+ full = File.join(@wsPath,l)
171
+ if File.directory?(full)
172
+ dirs << ModifiedDir.new(l,full)
68
173
  else
69
- files << l
174
+ files << ModifiedFile.new(l,full)
70
175
  end
71
176
  end
72
177
 
73
- [true, dirs.sort, files.sort]
74
- else
75
- [false, [], []]
178
+ #[true, dirs.sort, files.sort]
179
+ [dirs.sort, files.sort]
76
180
  end
77
181
 
78
182
  end
@@ -95,19 +199,20 @@ module GitCli
95
199
  files = []
96
200
  res = os_exec(cmdln) do |st, res|
97
201
 
98
- if st.success?
202
+ if not st.success?
203
+ raise GitDeltaError, res
204
+ else
99
205
  res.each_line do |l|
100
206
  l.chomp!
101
- if File.directory?(File.join(@wsPath,l))
102
- dirs << l
207
+ full = File.join(@wsPath,l)
208
+ if File.directory?(full)
209
+ dirs << ConflictedDir.new(l, full)
103
210
  else
104
- files << l
211
+ files << ConflictedFile.new(l, full)
105
212
  end
106
213
  end
107
214
 
108
- [true, dirs.sort, files.sort]
109
- else
110
- [false, [], []]
215
+ [dirs.sort, files.sort]
111
216
  end
112
217
 
113
218
  end
@@ -130,19 +235,20 @@ module GitCli
130
235
  files = []
131
236
  res = os_exec(cmdln) do |st, res|
132
237
 
133
- if st.success?
238
+ if not st.success?
239
+ raise GitDeltaError, res
240
+ else
134
241
  res.each_line do |l|
135
242
  l.chomp!
136
- if File.directory?(File.join(@wsPath,l))
137
- dirs << l
243
+ full = File.join(@wsPath,l)
244
+ if File.directory?(full)
245
+ dirs << NewDir.new(l,full)
138
246
  else
139
- files << l
247
+ files << NewFile.new(l,full)
140
248
  end
141
249
  end
142
250
 
143
- [true, dirs.sort, files.sort]
144
- else
145
- [false, [], []]
251
+ [dirs.sort, files.sort]
146
252
  end
147
253
  end
148
254
 
@@ -165,27 +271,64 @@ module GitCli
165
271
  files = []
166
272
  res = os_exec(cmdln) do |st, res|
167
273
 
168
- if st.success?
274
+ if not st.success?
275
+ raise GitDeltaError, res
276
+ else
169
277
  res.each_line do |l|
170
278
  l.chomp!
171
- if File.directory?(File.join(@wsPath,l))
172
- dirs << l
279
+ full = File.join(@wsPath,l)
280
+ if File.directory?(full)
281
+ dirs << DeletedDir.new(l,full)
173
282
  else
174
- files << l
283
+ files << DeletedFile.new(l,full)
175
284
  end
176
285
  end
177
286
 
178
- [true, dirs.sort, files.sort]
179
- else
180
- [false, [], []]
287
+ [dirs.sort, files.sort]
181
288
  end
182
289
  end
183
290
 
184
291
  end # deleted_files
185
292
 
293
+ def staged_files
294
+
295
+ check_vcs
296
+
297
+ cmd = []
298
+ cmd << "cd"
299
+ cmd << @wsPath
300
+ cmd << "&&"
301
+ cmd << @vcs.exe_path
302
+ cmd << "diff --name-only --cached"
303
+
304
+ cmdln = cmd.join(" ")
305
+ log_debug "Staged Files : #{cmdln}"
306
+ dirs = []
307
+ files = []
308
+ res = os_exec(cmdln) do |st, res|
309
+
310
+ if not st.success?
311
+ raise GitDeltaError, res
312
+ else
313
+ res.each_line do |l|
314
+ l.chomp!
315
+ full = File.join(@wsPath,l)
316
+ if File.directory?(full)
317
+ dirs << StagedDir.new(l,full)
318
+ else
319
+ files << StagedFile.new(l,full)
320
+ end
321
+ end
322
+
323
+ [dirs.sort, files.sort]
324
+ end
325
+ end
326
+
327
+ end # staged_files
328
+
186
329
  def reset_file_changes(path)
187
330
 
188
- raise_if_empty(path, "Path cannot be empty for reset file changes operation", GitCliException)
331
+ raise_if_empty(path, "Path cannot be empty for reset file changes operation", GitDeltaError)
189
332
 
190
333
  check_vcs
191
334
 
@@ -67,27 +67,6 @@ module GitCli
67
67
  [true, gpath]
68
68
  end
69
69
 
70
- #if Antrapol::ToolRack::RuntimeUtils.on_linux?
71
- # require_relative 'os/linux/utils'
72
- # GitCli::Global.instance.logger.debug "Running on Linux is detected"
73
- # st, path = GitCli::OS::Linux::Utils.is_installed?("git")
74
- # GitCli::Global.instance.logger.debug "'git' install check return [#{st},#{path}]"
75
-
76
- # [st, path]
77
-
78
- #elsif Antrapol::ToolRack::RuntimeUtils.on_mac?
79
- # GitCli::Global.instance.logger.debug "Running on MacOS is detected"
80
- # require_relative 'os/macos/utils'
81
-
82
- #elsif Antrapol::ToolRack::RuntimeUtils.on_window?
83
- # GitCli::Global.instance.logger.debug "Running on MS Window is detected"
84
- # require_relative 'os/win/utils'
85
-
86
- #else
87
- # GitCli::Global.instance.logger.debug "Cannot determine which OS am i running...Confused"
88
- # raise RuntimeError, "Unknown platform"
89
- #end
90
-
91
70
  end # is_installed?
92
71
 
93
72
  end
@@ -24,8 +24,15 @@ module GitCli
24
24
 
25
25
  attr_reader :logger
26
26
  def initialize
27
- @logger = Tlogger.new
27
+ debug = ENV['GitCli_Debug']
28
+ debugOut = ENV['GitCli_DebugOut'] || STDOUT
29
+ if debug.nil?
30
+ @logger = Tlogger.new('git_cli.log', 5, 1024*1024*10)
31
+ else
32
+ @logger = Tlogger.new(debugOut)
33
+ end
28
34
  end
35
+
29
36
  end
30
37
 
31
38
  class GitCliException < StandardError; end
data/lib/git_cli/repos.rb CHANGED
@@ -18,6 +18,7 @@
18
18
 
19
19
  module GitCli
20
20
  module Repos
21
+ class ReposError < StandardError; end
21
22
 
22
23
  def remote_config
23
24
  check_vcs
@@ -32,21 +33,26 @@ module GitCli
32
33
  cmdln = cmd.join(" ")
33
34
  log_debug "Remote config : #{cmdln}"
34
35
  res = os_exec(cmdln) do |st, res|
35
-
36
+
36
37
  if st.success?
37
38
 
38
39
  remotes = { }
39
40
  res.each_line do |l|
40
41
  ls = l.split("\t")
41
42
  lss = ls[1].split(" ")
42
- if not remotes.keys.include?(ls[0])
43
- remotes[ls[0]] = lss[0]
44
- end
43
+
44
+ remotes[ls[0]] = { } if is_empty?(remotes[ls[0]])
45
+ rem = remotes[ls[0]]
46
+ type = lss[-1]
47
+ type.gsub!("(","").gsub!(")","")
48
+ rem[type] = lss[0]
45
49
  end
46
50
 
47
- [true, remotes]
51
+ #[true, remotes]
52
+ remotes
48
53
  else
49
- [false, res]
54
+ raise ReposError, res.strip
55
+ #[false, res]
50
56
  end
51
57
  end
52
58
 
@@ -74,9 +80,11 @@ module GitCli
74
80
  res = os_exec(cmdln) do |st, res|
75
81
 
76
82
  if st.success?
77
- [true, res.strip]
83
+ #[true, res.strip]
84
+ res.strip
78
85
  else
79
- [false, res.strip]
86
+ raise ReposError, res.strip
87
+ #[false, res.strip]
80
88
  end
81
89
  end
82
90
 
@@ -103,13 +111,16 @@ module GitCli
103
111
  res = os_exec(cmdln) do |st, res|
104
112
 
105
113
  if st.success?
106
- [true, res.strip]
114
+ #[true, res.strip]
115
+ res.strip
107
116
  else
108
- [false, res.strip]
117
+ raise ReposError, res.strip
118
+ #[false, res.strip]
109
119
  end
110
120
  end
111
121
 
112
122
  end # remove_remote
123
+ alias_method :remove_del, :remove_remote
113
124
 
114
125
 
115
126
 
data/lib/git_cli/tags.rb CHANGED
@@ -19,6 +19,8 @@
19
19
  module GitCli
20
20
  module Tags
21
21
 
22
+ class TagError < StandardError; end
23
+
22
24
  def all_tags
23
25
 
24
26
  check_vcs
@@ -35,9 +37,11 @@ module GitCli
35
37
  res = os_exec(cmdln) do |st, res|
36
38
 
37
39
  if st.success?
38
- [true, res.strip!]
40
+ res.strip
41
+ #[true, res.strip!]
39
42
  else
40
- [false, res]
43
+ raise TagError, res
44
+ #[false, res]
41
45
  end
42
46
  end
43
47
 
@@ -144,9 +148,11 @@ module GitCli
144
148
  log_debug "New tag : #{cmdln}"
145
149
  res = os_exec(cmdln) do |st, res|
146
150
  if st.success?
147
- [true, res.strip!]
151
+ #[true, res.strip!]
152
+ res.strip
148
153
  else
149
- [false, res]
154
+ raise TagError, res
155
+ #[false, res]
150
156
  end
151
157
  end
152
158
 
@@ -186,9 +192,11 @@ module GitCli
186
192
  log_debug "New tag from commit ID : #{cmdln}"
187
193
  res = os_exec(cmdln) do |st, res|
188
194
  if st.success?
189
- [true, res.strip!]
195
+ res.strip
196
+ #[true, res.strip!]
190
197
  else
191
- [false, res]
198
+ raise TagError, res
199
+ #[false, res]
192
200
  end
193
201
  end
194
202
 
@@ -211,9 +219,11 @@ module GitCli
211
219
  res = os_exec(cmdln) do |st, res|
212
220
 
213
221
  if st.success?
214
- [true, res.strip!]
222
+ #[true, res.strip!]
223
+ res.strip
215
224
  else
216
- [false, res]
225
+ raise TagError, res
226
+ #[false, res]
217
227
  end
218
228
  end
219
229
 
@@ -241,9 +251,11 @@ module GitCli
241
251
  log_debug "Show tag '#{tag}' #{not_empty?(format) ? "[#{format}]" : ""} : #{cmdln}"
242
252
  res = os_exec(cmdln) do |st, res|
243
253
  if st.success?
244
- [true, res.strip!]
254
+ res.strip
255
+ #[true, res.strip!]
245
256
  else
246
- [false, res]
257
+ raise TagError, res
258
+ #[false, res]
247
259
  end
248
260
  end
249
261
 
@@ -266,9 +278,11 @@ module GitCli
266
278
  log_debug "Delete tag '#{tag}' : #{cmdln}"
267
279
  res = os_exec(cmdln) do |st, res|
268
280
  if st.success?
269
- [true, res.strip!]
281
+ res.strip
282
+ #[true, res.strip!]
270
283
  else
271
- [false, res]
284
+ raise TagError, res
285
+ #[false, res]
272
286
  end
273
287
  end
274
288
 
@@ -293,9 +307,11 @@ module GitCli
293
307
  log_debug "Delete remote tag '#{tag}' at '#{repos}': #{cmdln}"
294
308
  res = os_exec(cmdln) do |st, res|
295
309
  if st.success?
296
- [true, res.strip!]
310
+ res
311
+ #[true, res.strip!]
297
312
  else
298
- [false, res]
313
+ raise TagError, res
314
+ #[false, res]
299
315
  end
300
316
  end
301
317
 
@@ -321,9 +337,11 @@ module GitCli
321
337
  log_debug "Checkout tag '#{tag}' into branch '#{branch}': #{cmdln}"
322
338
  res = os_exec(cmdln) do |st, res|
323
339
  if st.success?
324
- [true, res.strip!]
340
+ res.strip
341
+ #[true, res.strip!]
325
342
  else
326
- [false, res]
343
+ raise TagError, res
344
+ #[false, res]
327
345
  end
328
346
  end
329
347
 
@@ -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.5.0"
18
+ VERSION = "0.9.0"
19
19
  end
data/lib/git_cli.rb CHANGED
@@ -118,13 +118,21 @@ module GitCli
118
118
  include GitCli::Repos
119
119
  include GitCli::Stash
120
120
 
121
+ include TR::CondUtils
122
+
121
123
  attr_accessor :repos
122
- def initialize(vcs, path)
124
+ def initialize(path, vcs = nil)
123
125
 
124
- raise_if_empty(vcs , "VCS cannot be empty", GitCliException)
126
+ #raise_if_empty(vcs , "VCS cannot be empty", GitCliException)
125
127
  raise_if_empty(path, "Workspace path cannot be empty", GitCliException)
126
-
127
- @vcs = vcs
128
+
129
+ if is_empty?(vcs)
130
+ @vcs = Gvcs::Vcs.new
131
+ else
132
+ @vcs = vcs
133
+ end
134
+
135
+ #@vcs = vcs
128
136
  @givenPath = path
129
137
 
130
138
  @wsPath = File.expand_path(@givenPath)
@@ -151,6 +159,7 @@ module GitCli
151
159
 
152
160
  def is_repos_exist?(name)
153
161
  found = false
162
+ load_remote_to_repos
154
163
  @repos.each do |re|
155
164
  if re.name == name
156
165
  found = true
@@ -161,8 +170,15 @@ module GitCli
161
170
  end # is_repos_exist?
162
171
 
163
172
  def is_workspace?
164
- st, res = status
165
- st
173
+ begin
174
+ status
175
+ true
176
+ rescue GitDeltaError => ex
177
+ log_debug ex.message
178
+ false
179
+ end
180
+ #st, res = status
181
+ #st
166
182
  end
167
183
 
168
184
  def workspace_root
@@ -195,6 +211,16 @@ module GitCli
195
211
 
196
212
  end # workspace_root
197
213
 
214
+ def load_remote_to_repos
215
+ conf = remote_config
216
+ conf.each do |k,v|
217
+ repo = Gvcs::Repository.new(k, v.values.first)
218
+ repo.support_fetch if v.keys.include?("fetch")
219
+ repo.support_push if v.keys.include?("push")
220
+ add_repos(repo)
221
+ end
222
+ end
223
+
198
224
  end # Gvcs::Workspace
199
225
 
200
226
 
@@ -208,12 +234,29 @@ module GitCli
208
234
  @url = url
209
235
  #@branches = branches
210
236
  @sslVerify = true
237
+
238
+ @fetch = false
239
+ @push = false
211
240
  end
212
241
 
213
242
  def ssl_verify(bool)
214
243
  @sslVerify = bool
215
244
  end
216
245
 
246
+ def support_fetch
247
+ @fetch = true
248
+ end
249
+ def is_fetch_supported?
250
+ @fetch
251
+ end
252
+
253
+ def support_push
254
+ @push = true
255
+ end
256
+ def is_push_supported?
257
+ @push
258
+ end
259
+
217
260
  end # repository
218
261
 
219
262
  end
metadata CHANGED
@@ -1,71 +1,85 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: git_cli
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
4
+ version: 0.9.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chris Liaw
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-11-21 00:00:00.000000000 Z
11
+ date: 2021-10-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
+ name: tlogger
14
15
  requirement: !ruby/object:Gem::Requirement
15
16
  requirements:
16
- - - "~>"
17
+ - - ">="
17
18
  - !ruby/object:Gem::Version
18
- version: '0.21'
19
- name: tlogger
20
- prerelease: false
19
+ version: '0'
21
20
  type: :runtime
21
+ prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - "~>"
24
+ - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: '0.21'
26
+ version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
+ name: toolrack
28
29
  requirement: !ruby/object:Gem::Requirement
29
30
  requirements:
30
- - - "~>"
31
+ - - ">="
31
32
  - !ruby/object:Gem::Version
32
- version: 0.4.0
33
- name: toolrack
34
- prerelease: false
33
+ version: '0'
35
34
  type: :runtime
35
+ prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - "~>"
38
+ - - ">="
39
39
  - !ruby/object:Gem::Version
40
- version: 0.4.0
40
+ version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
+ name: gvcs
42
43
  requirement: !ruby/object:Gem::Requirement
43
44
  requirements:
44
- - - "~>"
45
+ - - ">="
45
46
  - !ruby/object:Gem::Version
46
- version: 0.1.0
47
- name: gvcs
48
- prerelease: false
47
+ version: '0'
49
48
  type: :runtime
49
+ prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - "~>"
52
+ - - ">="
53
53
  - !ruby/object:Gem::Version
54
- version: 0.1.0
54
+ version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
+ name: ptools
56
57
  requirement: !ruby/object:Gem::Requirement
57
58
  requirements:
58
59
  - - "~>"
59
60
  - !ruby/object:Gem::Version
60
61
  version: 1.4.0
61
- name: ptools
62
- prerelease: false
63
62
  type: :runtime
63
+ prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
68
  version: 1.4.0
69
+ - !ruby/object:Gem::Dependency
70
+ name: devops_helper
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
69
83
  description: Interface to GIT via command line interface instead of some sor of library
70
84
  email:
71
85
  - chrisliaw@antrapol.com
@@ -107,7 +121,7 @@ homepage: https://github.com/chrisliaw/git_cli
107
121
  licenses:
108
122
  - GPL-3.0
109
123
  metadata: {}
110
- post_install_message:
124
+ post_install_message:
111
125
  rdoc_options: []
112
126
  require_paths:
113
127
  - lib
@@ -122,9 +136,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
122
136
  - !ruby/object:Gem::Version
123
137
  version: '0'
124
138
  requirements: []
125
- rubyforge_project:
126
- rubygems_version: 2.7.10
127
- signing_key:
139
+ rubygems_version: 3.2.22
140
+ signing_key:
128
141
  specification_version: 4
129
142
  summary: GIT command line interface
130
143
  test_files: []