squared 0.0.9 → 0.0.10
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/README.md +2 -6
- data/README.ruby.md +112 -33
- data/lib/squared/common/base.rb +12 -4
- data/lib/squared/common/format.rb +45 -31
- data/lib/squared/common/shell.rb +16 -7
- data/lib/squared/common/system.rb +5 -5
- data/lib/squared/common/task.rb +1 -1
- data/lib/squared/common/utils.rb +60 -0
- data/lib/squared/common.rb +1 -0
- data/lib/squared/config.rb +18 -15
- data/lib/squared/version.rb +1 -1
- data/lib/squared/workspace/application.rb +104 -70
- data/lib/squared/workspace/project/base.rb +304 -118
- data/lib/squared/workspace/project/git.rb +43 -52
- data/lib/squared/workspace/project/node.rb +125 -126
- data/lib/squared/workspace/project/python.rb +23 -3
- data/lib/squared/workspace/project/ruby.rb +129 -116
- data/lib/squared/workspace/repo.rb +82 -88
- data/lib/squared/workspace/series.rb +15 -13
- metadata +3 -2
@@ -29,7 +29,7 @@ module Squared
|
|
29
29
|
else
|
30
30
|
sync.('pull')
|
31
31
|
end]
|
32
|
-
cmd << ws.task_name(ws.dev? && ws.series.some?(:refresh) ? 'refresh' : 'build')
|
32
|
+
cmd << ws.task_name(ws.dev?(global: true) && ws.series.some?(:refresh) ? 'refresh' : 'build')
|
33
33
|
Common::Task.invoke(cmd, exception: ws.exception, warning: ws.warning)
|
34
34
|
end
|
35
35
|
end
|
@@ -63,7 +63,7 @@ module Squared
|
|
63
63
|
|
64
64
|
def initialize(*, **)
|
65
65
|
super
|
66
|
-
initialize_ref(Git.ref)
|
66
|
+
initialize_ref(Git.ref) if gitdir.exist?
|
67
67
|
end
|
68
68
|
|
69
69
|
def ref
|
@@ -72,22 +72,17 @@ module Squared
|
|
72
72
|
|
73
73
|
def populate(*)
|
74
74
|
super
|
75
|
-
return unless
|
75
|
+
return unless ref?(Git.ref)
|
76
76
|
|
77
77
|
namespace name do
|
78
78
|
@@tasks[Git.ref].each do |action, flags|
|
79
79
|
namespace action do
|
80
80
|
flags.each do |flag|
|
81
81
|
case action
|
82
|
-
when :pull
|
83
|
-
desc format_desc(action, flag, OPT_PULL)
|
82
|
+
when :pull, :fetch
|
83
|
+
desc format_desc(action, flag, flag == :pull ? OPT_PULL : OPT_FETCH)
|
84
84
|
task flag, [:opts] do |_, args|
|
85
|
-
|
86
|
-
end
|
87
|
-
when :fetch
|
88
|
-
desc format_desc(action, flag, OPT_FETCH)
|
89
|
-
task flag, [:opts] do |_, args|
|
90
|
-
fetch(flag, opts: args.to_a)
|
85
|
+
__send__(action, flag, opts: args.to_a)
|
91
86
|
end
|
92
87
|
when :commit, :restore
|
93
88
|
if flag == :all
|
@@ -131,8 +126,11 @@ module Squared
|
|
131
126
|
desc format_desc(action, flag, 'index?=0,pathspec*')
|
132
127
|
task flag, [:pathspec] do |_, args|
|
133
128
|
files = args.to_a
|
134
|
-
index
|
135
|
-
|
129
|
+
diff(flag, files, index: if /^\d+$/.match?(files.first) && !git_option('index')
|
130
|
+
files.shift.to_i
|
131
|
+
else
|
132
|
+
0
|
133
|
+
end)
|
136
134
|
end
|
137
135
|
when :cached
|
138
136
|
desc format_desc(action, flag, 'pathspec*')
|
@@ -193,7 +191,9 @@ module Squared
|
|
193
191
|
if flag == :head
|
194
192
|
desc format_desc(action, flag, 'ref?=HEAD,pathspec+')
|
195
193
|
task flag, [:ref, :pathspec] do |_, args|
|
196
|
-
|
194
|
+
files = args.to_a[1..-1]
|
195
|
+
guard_params(action, flag, args: files)
|
196
|
+
reset(flag, files, ref: args.ref)
|
197
197
|
end
|
198
198
|
else
|
199
199
|
desc format_desc(action, flag, 'ref?=HEAD')
|
@@ -221,7 +221,7 @@ module Squared
|
|
221
221
|
cmd << '--commit'
|
222
222
|
end
|
223
223
|
append_pull opts, OPT_PULL, flag
|
224
|
-
source(sync: sync,
|
224
|
+
source(sync: sync, **gitthread)
|
225
225
|
end
|
226
226
|
|
227
227
|
def rebase
|
@@ -232,7 +232,7 @@ module Squared
|
|
232
232
|
cmd = git_session 'fetch'
|
233
233
|
cmd << '--all' if flag == :all || git_option('all')
|
234
234
|
append_pull opts, OPT_FETCH, flag
|
235
|
-
source(sync: invoked_sync?('fetch', flag),
|
235
|
+
source(sync: invoked_sync?('fetch', flag), **gitthread)
|
236
236
|
end
|
237
237
|
|
238
238
|
def stash(flag = nil, files = [], commit: nil)
|
@@ -242,11 +242,11 @@ module Squared
|
|
242
242
|
cmd << '--index' if git_option('index')
|
243
243
|
cmd << commit
|
244
244
|
else
|
245
|
-
append_option %w[all staged include-untracked]
|
245
|
+
append_option %w[all staged include-untracked].freeze
|
246
246
|
append_message git_option('message', 'm', zero: false)
|
247
247
|
append_pathspec files
|
248
248
|
end
|
249
|
-
source(sync: invoked_sync?('stash', flag),
|
249
|
+
source(sync: invoked_sync?('stash', flag), **gitthread)
|
250
250
|
end
|
251
251
|
|
252
252
|
def status
|
@@ -265,11 +265,11 @@ module Squared
|
|
265
265
|
end
|
266
266
|
append_pathspec
|
267
267
|
out, banner = source(io: true)
|
268
|
-
if
|
268
|
+
if invoked_sync?('status')
|
269
269
|
print_item banner
|
270
270
|
banner = nil
|
271
271
|
end
|
272
|
-
sub = if verbose
|
272
|
+
sub = if verbose
|
273
273
|
[
|
274
274
|
{ pat: /^(.)([A-Z])(.+)$/, styles: :red, index: 2 },
|
275
275
|
{ pat: /^([A-Z])(.+)$/, styles: :green },
|
@@ -284,7 +284,6 @@ module Squared
|
|
284
284
|
def reset(flag, files = [], ref: nil)
|
285
285
|
cmd = git_session 'reset'
|
286
286
|
if flag == :head
|
287
|
-
guard_params('reset', flag, args: files)
|
288
287
|
append_commit ref
|
289
288
|
append_pathspec files
|
290
289
|
else
|
@@ -328,12 +327,11 @@ module Squared
|
|
328
327
|
end
|
329
328
|
|
330
329
|
def rev(flag, ref: nil, size: nil)
|
331
|
-
|
332
|
-
|
333
|
-
|
334
|
-
|
335
|
-
|
336
|
-
git_session 'rev-parse', opt
|
330
|
+
git_session 'rev-parse', if flag == :branch
|
331
|
+
'--abbrev-ref'
|
332
|
+
else
|
333
|
+
(n = size.to_i) > 0 ? "--short=#{[n, 5].max}" : '--verify'
|
334
|
+
end
|
337
335
|
append_commit ref
|
338
336
|
source
|
339
337
|
end
|
@@ -403,7 +401,7 @@ module Squared
|
|
403
401
|
raise_error('commit', 'pathspec', hint: 'missing') if files.empty?
|
404
402
|
"-- #{files.join(' ')}"
|
405
403
|
end
|
406
|
-
|
404
|
+
unless push?
|
407
405
|
source('git branch -vv --list', io: true, banner: false).first.each do |val|
|
408
406
|
origin = %r{^\* [^\[]+(?<= )\[([\w.-/]+?)/([\w.-]+)\] }.match(val)
|
409
407
|
next unless origin
|
@@ -414,7 +412,6 @@ module Squared
|
|
414
412
|
end
|
415
413
|
end
|
416
414
|
raise_error('commit', 'work tree is not usable') unless push?
|
417
|
-
|
418
415
|
cmd = git_session 'commit'
|
419
416
|
cmd << '--dry-run' if git_option('dry-run')
|
420
417
|
if amend
|
@@ -443,11 +440,7 @@ module Squared
|
|
443
440
|
end
|
444
441
|
|
445
442
|
def restore(flag, files)
|
446
|
-
|
447
|
-
case flag
|
448
|
-
when :worktree, :staged, :overlay
|
449
|
-
cmd << "--#{flag}"
|
450
|
-
end
|
443
|
+
git_session 'restore', "--#{flag}"
|
451
444
|
append_ours
|
452
445
|
append_pathspec(files, expect: true)
|
453
446
|
source(stdout: true)
|
@@ -463,12 +456,12 @@ module Squared
|
|
463
456
|
begin
|
464
457
|
if io
|
465
458
|
[IO.popen(cmd), banner]
|
466
|
-
elsif
|
459
|
+
elsif stdin? ? sync : stdout
|
467
460
|
print_item banner
|
468
461
|
ret = `#{cmd}`
|
469
462
|
if !ret.empty?
|
470
463
|
puts ret
|
471
|
-
elsif banner && stdout && !
|
464
|
+
elsif banner && stdout && !stdin?
|
472
465
|
puts 'Success'
|
473
466
|
end
|
474
467
|
elsif sync || (!exception && !stderr)
|
@@ -482,7 +475,7 @@ module Squared
|
|
482
475
|
if ret == 0
|
483
476
|
write_lines(err, banner: banner)
|
484
477
|
else
|
485
|
-
write_lines(err, loglevel: Logger::DEBUG)
|
478
|
+
write_lines(err, loglevel: ::Logger::DEBUG)
|
486
479
|
end
|
487
480
|
end
|
488
481
|
else
|
@@ -493,16 +486,16 @@ module Squared
|
|
493
486
|
log.error e
|
494
487
|
raise if exception
|
495
488
|
|
496
|
-
warn e if
|
489
|
+
warn log_message(::Logger::WARN, e) if warning?
|
497
490
|
end
|
498
491
|
end
|
499
492
|
|
500
|
-
def write_lines(
|
493
|
+
def write_lines(data, banner: nil, loglevel: nil, grep: nil, sub: nil, pass: false)
|
501
494
|
grep = Regexp.new(grep == '*' ? '.+' : grep) if grep.is_a?(::String)
|
502
|
-
sub = nil if
|
503
|
-
|
495
|
+
sub = nil if stdin?
|
496
|
+
ret = 0
|
504
497
|
lines = []
|
505
|
-
|
498
|
+
data.each do |line|
|
506
499
|
next if grep && !line.match?(grep)
|
507
500
|
|
508
501
|
if loglevel
|
@@ -515,14 +508,14 @@ module Squared
|
|
515
508
|
puts line
|
516
509
|
end
|
517
510
|
end
|
518
|
-
|
511
|
+
ret += 1
|
519
512
|
end
|
520
|
-
print_item banner, lines if banner && (
|
521
|
-
|
513
|
+
print_item banner, lines if banner && (ret > 0 || !pass)
|
514
|
+
ret
|
522
515
|
end
|
523
516
|
|
524
517
|
def list_result(size, type, action: 'found', grep: nil)
|
525
|
-
return unless verbose
|
518
|
+
return unless verbose
|
526
519
|
|
527
520
|
if size > 0
|
528
521
|
styles = theme.fetch(:banner, []).reject { |s| s.to_s.end_with?('!') }
|
@@ -610,14 +603,12 @@ module Squared
|
|
610
603
|
session('git', *cmd)
|
611
604
|
end
|
612
605
|
|
613
|
-
def
|
614
|
-
|
606
|
+
def gitthread
|
607
|
+
{ stderr: true, exception: !workspace.series.multiple? }
|
615
608
|
end
|
616
609
|
|
617
|
-
def
|
618
|
-
|
619
|
-
|
620
|
-
!val.match?(%r{^\.\.[/\\]})
|
610
|
+
def gitdir
|
611
|
+
base_path('.git')
|
621
612
|
end
|
622
613
|
|
623
614
|
def push?
|