squared 0.4.23 → 0.4.24
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/CHANGELOG.md +20 -0
- data/README.md +1 -1
- data/lib/squared/common/format.rb +5 -3
- data/lib/squared/common/shell.rb +18 -18
- data/lib/squared/version.rb +1 -1
- data/lib/squared/workspace/application.rb +1 -1
- data/lib/squared/workspace/project/base.rb +27 -37
- data/lib/squared/workspace/project/docker.rb +4 -4
- data/lib/squared/workspace/project/git.rb +2 -2
- data/lib/squared/workspace/project/node.rb +3 -3
- data/lib/squared/workspace/project/ruby.rb +1 -1
- data/lib/squared/workspace/project/support/class.rb +4 -3
- data/lib/squared/workspace/repo.rb +4 -3
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: c07babae909a985bae708b8a2bec453b223d9889af828da70d990609e9966142
|
|
4
|
+
data.tar.gz: 5375a660bbcc0f49b5a3eaad5ab2740b103beeb3823a0d7b027b9005bf39faa9
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 23cd1e57c7d0039fed851d6d426eec51022dba2c26bbce9faafddd20ded4aad3d00d6db023c3a99e2aa485aace597567df4f603130746daa5dc5e2d661c658dd
|
|
7
|
+
data.tar.gz: cb9556662d393d458413df3669f9859b4b3df9d9ca3e659b9098fac0d550349eaf8b414e6cb85b0828f522f3b78f1627c282350eb6b9b62218f76413ebcaabb8
|
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,24 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.4.24] - 2025-10-17
|
|
4
|
+
|
|
5
|
+
### Added
|
|
6
|
+
|
|
7
|
+
- Repo task [init|all] can bypass dev? copy requirement with REPO_STAGE=4.
|
|
8
|
+
|
|
9
|
+
### Changed
|
|
10
|
+
|
|
11
|
+
- Node command outdated does not check PNPM minimum version.
|
|
12
|
+
|
|
13
|
+
### Fixed
|
|
14
|
+
|
|
15
|
+
- Project base rescue error handling used reversed parameters.
|
|
16
|
+
- Project absolute paths did not append wildcard with trailing slash.
|
|
17
|
+
- Powershell commands did not escape nested double quotes.
|
|
18
|
+
- OptionPartition did not strip flags without a value.
|
|
19
|
+
- Project base method add did not use parent context.
|
|
20
|
+
- Application property pipe did not parse numeric values.
|
|
21
|
+
|
|
3
22
|
## [0.4.23] - 2025-10-11
|
|
4
23
|
|
|
5
24
|
### Fixed
|
|
@@ -1018,6 +1037,7 @@
|
|
|
1018
1037
|
|
|
1019
1038
|
- Changelog was created.
|
|
1020
1039
|
|
|
1040
|
+
[0.4.24]: https://github.com/anpham6/squared-ruby/releases/tag/v0.4.24
|
|
1021
1041
|
[0.4.23]: https://github.com/anpham6/squared-ruby/releases/tag/v0.4.23
|
|
1022
1042
|
[0.4.22]: https://github.com/anpham6/squared-ruby/releases/tag/v0.4.22
|
|
1023
1043
|
[0.4.21]: https://github.com/anpham6/squared-ruby/releases/tag/v0.4.21
|
data/README.md
CHANGED
|
@@ -723,7 +723,7 @@ REPO_SYNC # 0,1
|
|
|
723
723
|
REPO_URL # manifest repository
|
|
724
724
|
REPO_MANIFEST # e.g. latest,nightly,prod
|
|
725
725
|
REPO_GROUPS # e.g. base,prod,docs
|
|
726
|
-
REPO_STAGE # 0,1,2,3
|
|
726
|
+
REPO_STAGE # 0,1,2,3,4
|
|
727
727
|
REPO_SUBMODULLES # 0,1
|
|
728
728
|
REPO_TIMEOUT # confirm dialog (seconds)
|
|
729
729
|
```
|
|
@@ -178,8 +178,9 @@ module Squared
|
|
|
178
178
|
args = args.map(&:to_s)
|
|
179
179
|
if level.is_a?(::Numeric)
|
|
180
180
|
if append && respond_to?(:log)
|
|
181
|
-
|
|
182
|
-
|
|
181
|
+
(log rescue nil).tap do |ref|
|
|
182
|
+
ref.add(level, message(subject, *args, hint: hint, space: ', ')) if ref.is_a?(Logger)
|
|
183
|
+
end
|
|
183
184
|
end
|
|
184
185
|
return false if !pass && level < ARG[:LEVEL]
|
|
185
186
|
end
|
|
@@ -217,7 +218,8 @@ module Squared
|
|
|
217
218
|
module_function
|
|
218
219
|
|
|
219
220
|
def message(*args, hint: nil, empty: false, space: ARG[:SPACE])
|
|
220
|
-
(empty ? args.reject { |val| val.nil? || val.empty?
|
|
221
|
+
(empty ? args.reject { |val| val.nil? || (val.respond_to?(:empty?) && val.empty?) } : args)
|
|
222
|
+
.join(space) + (hint ? " (#{hint})" : '')
|
|
221
223
|
end
|
|
222
224
|
|
|
223
225
|
def emphasize(val, title: nil, footer: nil, right: false, cols: nil, sub: nil, pipe: nil,
|
data/lib/squared/common/shell.rb
CHANGED
|
@@ -16,15 +16,15 @@ module Squared
|
|
|
16
16
|
elsif !r[3] || r[6]
|
|
17
17
|
return val
|
|
18
18
|
end
|
|
19
|
-
if r[7].match?(/\A["']/)
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
19
|
+
opt = if r[7].match?(/\A["']/)
|
|
20
|
+
"#{r[7]}#{r[7][0]}"
|
|
21
|
+
elsif r[7].match?(/["']\z/)
|
|
22
|
+
"#{r[7][-1]}#{r[7]}"
|
|
23
|
+
else
|
|
24
|
+
return val unless r[7].match?(/\s/)
|
|
25
|
+
|
|
26
|
+
r[7]
|
|
27
|
+
end
|
|
28
28
|
r[1] + (data ? data[2] : r[2]) + r[4] + shell_quote(opt, double: double, force: force, override: override)
|
|
29
29
|
elsif option && val =~ /\A([^=]+)=(.+)\z/m
|
|
30
30
|
return val if $2.match?(/\A(["']).+\1\z/m)
|
|
@@ -65,15 +65,15 @@ module Squared
|
|
|
65
65
|
escape = false
|
|
66
66
|
override = true
|
|
67
67
|
end
|
|
68
|
-
if flag[0] == '-'
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
68
|
+
b = if flag[0] == '-'
|
|
69
|
+
flag[1] == '-' ? '=' : ' '
|
|
70
|
+
elsif flag.size == 1
|
|
71
|
+
a = '-'
|
|
72
|
+
merge ? '' : ' '
|
|
73
|
+
else
|
|
74
|
+
a = '--'
|
|
75
|
+
'='
|
|
76
|
+
end
|
|
77
77
|
"#{a}#{flag}#{unless val.nil?
|
|
78
78
|
"#{b}#{if escape
|
|
79
79
|
shell_escape(val, quote: quote, double: double, override: override)
|
data/lib/squared/version.rb
CHANGED
|
@@ -410,6 +410,7 @@ module Squared
|
|
|
410
410
|
kwargs[:group] = group unless kwargs.key?(:group)
|
|
411
411
|
kwargs[:ref] = ref unless kwargs.key?(:ref)
|
|
412
412
|
parent = self
|
|
413
|
+
proj = nil
|
|
413
414
|
name = case name
|
|
414
415
|
when String, Symbol
|
|
415
416
|
name.to_s
|
|
@@ -418,9 +419,10 @@ module Squared
|
|
|
418
419
|
end
|
|
419
420
|
workspace.add(path, name, **kwargs) do
|
|
420
421
|
__send__ :parent_set, parent
|
|
421
|
-
|
|
422
|
+
proj = self
|
|
422
423
|
instance_eval(&blk) if block_given?
|
|
423
424
|
end
|
|
425
|
+
@children << proj
|
|
424
426
|
self
|
|
425
427
|
end
|
|
426
428
|
|
|
@@ -482,11 +484,9 @@ module Squared
|
|
|
482
484
|
else
|
|
483
485
|
cmd, opts, var, flags, extra = args
|
|
484
486
|
end
|
|
485
|
-
if cmd.is_a?(Proc) || cmd.is_a?(Method)
|
|
486
|
-
run_b(cmd, sync: sync, from: from)
|
|
487
|
-
return
|
|
488
|
-
end
|
|
489
487
|
if cmd
|
|
488
|
+
return run_b(cmd, sync: sync, from: from) if cmd.is_a?(Proc) || cmd.is_a?(Method)
|
|
489
|
+
|
|
490
490
|
cmd = as_get(cmd, from)
|
|
491
491
|
opts = compose(opts, script: false) if opts && respond_to?(:compose)
|
|
492
492
|
flags = append_hash(flags, target: []).join(' ') if flags.is_a?(Hash)
|
|
@@ -528,7 +528,7 @@ module Squared
|
|
|
528
528
|
proj.__send__(meth, sync: sync)
|
|
529
529
|
next
|
|
530
530
|
rescue StandardError => e
|
|
531
|
-
on_error(:prereqs,
|
|
531
|
+
on_error(e, :prereqs, exception: true)
|
|
532
532
|
end
|
|
533
533
|
end
|
|
534
534
|
print_error(name, 'method not found', subject: 'prereqs', hint: meth)
|
|
@@ -548,7 +548,7 @@ module Squared
|
|
|
548
548
|
end
|
|
549
549
|
|
|
550
550
|
def doc(*, sync: invoked_sync?('doc'), **)
|
|
551
|
-
run_b(@doc, sync: sync,
|
|
551
|
+
run_b(@doc, sync: sync, banner: verbosetype > (from_base?('doc') ? 1 : 0), from: :doc)
|
|
552
552
|
end
|
|
553
553
|
|
|
554
554
|
def lint(*, sync: invoked_sync?('lint'), **)
|
|
@@ -569,9 +569,9 @@ module Squared
|
|
|
569
569
|
on :first, :clean unless pass
|
|
570
570
|
case @clean
|
|
571
571
|
when Struct
|
|
572
|
-
if (
|
|
572
|
+
if (val = instance_eval(&@clean.block) || @clean.run)
|
|
573
573
|
temp = @clean
|
|
574
|
-
@clean =
|
|
574
|
+
@clean = val
|
|
575
575
|
clean(*args, sync: sync, pass: true, **kwargs)
|
|
576
576
|
@clean = temp
|
|
577
577
|
end
|
|
@@ -589,7 +589,7 @@ module Squared
|
|
|
589
589
|
entry = basepath(val = val.to_s)
|
|
590
590
|
if entry.directory? && val.match?(%r{[\\/]\z})
|
|
591
591
|
log&.warn "rm -rf #{entry}"
|
|
592
|
-
rm_rf(entry, verbose:
|
|
592
|
+
rm_rf(entry, verbose: verbosetype > 0)
|
|
593
593
|
else
|
|
594
594
|
log&.warn "rm #{entry}"
|
|
595
595
|
(val.include?('*') ? Dir[entry] : [entry]).each do |file|
|
|
@@ -630,7 +630,7 @@ module Squared
|
|
|
630
630
|
end
|
|
631
631
|
ret = graph_branch(self, data, tasks, out, sync: sync, pass: pass)
|
|
632
632
|
rescue StandardError => e
|
|
633
|
-
on_error(:graph,
|
|
633
|
+
on_error(e, :graph, exception: true)
|
|
634
634
|
else
|
|
635
635
|
if out
|
|
636
636
|
[out, ret]
|
|
@@ -688,7 +688,7 @@ module Squared
|
|
|
688
688
|
case f.content_type
|
|
689
689
|
when 'application/zip'
|
|
690
690
|
ext = 'zip'
|
|
691
|
-
when
|
|
691
|
+
when %r{application/(?:x-)?gzip}
|
|
692
692
|
ext = 'tgz'
|
|
693
693
|
when 'application/x-xz'
|
|
694
694
|
ext = 'txz'
|
|
@@ -750,9 +750,7 @@ module Squared
|
|
|
750
750
|
break unless entry.directory?
|
|
751
751
|
|
|
752
752
|
i = 0
|
|
753
|
-
while (dest = target + "#{File.basename(file)}-#{i}").exist?
|
|
754
|
-
i += 1
|
|
755
|
-
end
|
|
753
|
+
i += 1 while (dest = target + "#{File.basename(file)}-#{i}").exist?
|
|
756
754
|
FileUtils.mv(entry, dest)
|
|
757
755
|
dest.children.each { |child| FileUtils.mv(child, target) }
|
|
758
756
|
dest.rmdir
|
|
@@ -852,7 +850,7 @@ module Squared
|
|
|
852
850
|
ret = shell(*args, chdir: chdir, exception: exception)
|
|
853
851
|
end
|
|
854
852
|
rescue StandardError => e
|
|
855
|
-
on_error(
|
|
853
|
+
on_error(e, from, exception: true)
|
|
856
854
|
false
|
|
857
855
|
else
|
|
858
856
|
on :last, from
|
|
@@ -1641,8 +1639,8 @@ module Squared
|
|
|
1641
1639
|
confirm "Upgrade to #{a}? #{b + e} [#{c}] ", d
|
|
1642
1640
|
end
|
|
1643
1641
|
|
|
1644
|
-
def choice_index(msg, list, values: nil, accept: nil, series: false, trim: nil, column: nil,
|
|
1645
|
-
|
|
1642
|
+
def choice_index(msg, list, values: nil, accept: nil, series: false, trim: nil, column: nil, multiple: false,
|
|
1643
|
+
force: true, **kwargs)
|
|
1646
1644
|
puts if !series && !printfirst?
|
|
1647
1645
|
msg = "#{msg} (optional)" unless force
|
|
1648
1646
|
unless (ret = choice(msg, list, multiple: multiple, force: force, **kwargs)) && !ret.empty?
|
|
@@ -1658,14 +1656,11 @@ module Squared
|
|
|
1658
1656
|
if accept
|
|
1659
1657
|
hint = Array(ret).map { |val| sub_style(val, styles: theme[:inline]) }.join(', ')
|
|
1660
1658
|
accept = Array(accept).map { |val| Array(val) }
|
|
1661
|
-
if accept.any? { |val| val[1] == true }
|
|
1662
|
-
ret = [ret]
|
|
1663
|
-
multiple = -1
|
|
1664
|
-
end
|
|
1659
|
+
ret = Array(ret) if accept.any? { |val| val[1] == true }
|
|
1665
1660
|
loop do
|
|
1666
1661
|
item = accept.first
|
|
1667
1662
|
d, e = item[2] ? ['Y', '[Y/n]'] : ['N', '[y/N]']
|
|
1668
|
-
c = confirm("#{item[0]}#{
|
|
1663
|
+
c = confirm("#{item[0]}#{hint ? " [#{hint}]" : ''} #{e} ", d, timeout: 60)
|
|
1669
1664
|
if item[1] == true
|
|
1670
1665
|
ret << c
|
|
1671
1666
|
elsif !c
|
|
@@ -1678,7 +1673,7 @@ module Squared
|
|
|
1678
1673
|
exit 1 unless accept.empty?
|
|
1679
1674
|
end
|
|
1680
1675
|
if values
|
|
1681
|
-
ret =
|
|
1676
|
+
ret = Array(ret)
|
|
1682
1677
|
values.each do |val|
|
|
1683
1678
|
if val.is_a?(Array)
|
|
1684
1679
|
val, force = val
|
|
@@ -1712,21 +1707,17 @@ module Squared
|
|
|
1712
1707
|
end
|
|
1713
1708
|
|
|
1714
1709
|
def command(*args)
|
|
1715
|
-
|
|
1716
|
-
|
|
1717
|
-
|
|
1718
|
-
args.join(' && ')
|
|
1719
|
-
end
|
|
1710
|
+
return args.join(' && ') unless workspace.powershell?
|
|
1711
|
+
|
|
1712
|
+
"powershell.exe -Command #{shell_quote("& {#{args.join(' ; ')}}", option: false, double: true)}"
|
|
1720
1713
|
end
|
|
1721
1714
|
|
|
1722
1715
|
def relativepath(*list, all: false)
|
|
1723
1716
|
return [] if list.empty?
|
|
1724
1717
|
|
|
1725
1718
|
list.flatten.map! { |val| Pathname.new(val) }.select { |val| projectpath?(val) }.map! do |val|
|
|
1726
|
-
|
|
1727
|
-
|
|
1728
|
-
val = "#{val}*" if all && val.end_with?('/')
|
|
1729
|
-
val
|
|
1719
|
+
ret = (val.absolute? ? val.relative_path_from(path) : val.cleanpath).to_s
|
|
1720
|
+
all && val.to_s.end_with?('/') ? "#{ret}/*" : ret
|
|
1730
1721
|
end
|
|
1731
1722
|
end
|
|
1732
1723
|
|
|
@@ -1811,8 +1802,7 @@ module Squared
|
|
|
1811
1802
|
end
|
|
1812
1803
|
|
|
1813
1804
|
def color(val)
|
|
1814
|
-
ret = theme[val]
|
|
1815
|
-
ret && !ret.empty? ? ret : [val]
|
|
1805
|
+
(ret = theme[val]) && !ret.empty? ? ret : [val]
|
|
1816
1806
|
end
|
|
1817
1807
|
|
|
1818
1808
|
def colormap(val)
|
|
@@ -2041,8 +2031,8 @@ module Squared
|
|
|
2041
2031
|
end
|
|
2042
2032
|
|
|
2043
2033
|
def projectpath?(val)
|
|
2044
|
-
|
|
2045
|
-
|
|
2034
|
+
ret = Pathname.new(val).cleanpath
|
|
2035
|
+
ret.absolute? ? ret.to_s.start_with?(File.join(path, '')) : !ret.to_s.start_with?(File.join('..', ''))
|
|
2046
2036
|
end
|
|
2047
2037
|
|
|
2048
2038
|
def checkdir?(val)
|
|
@@ -113,7 +113,7 @@ module Squared
|
|
|
113
113
|
return unless dockerfile(file).exist?
|
|
114
114
|
|
|
115
115
|
@context = context
|
|
116
|
-
|
|
116
|
+
self.tag = tag || tagname("#{@project}:#{@version || 'latest'}")
|
|
117
117
|
@mounts = mounts
|
|
118
118
|
@secrets = secrets
|
|
119
119
|
@registry = tagjoin registry, kwargs[:username]
|
|
@@ -206,7 +206,7 @@ module Squared
|
|
|
206
206
|
end
|
|
207
207
|
end
|
|
208
208
|
else
|
|
209
|
-
format_desc
|
|
209
|
+
format_desc action, flag, "opts*,id/name#{flag == :update ? '+' : '*'}"
|
|
210
210
|
task flag do |_, args|
|
|
211
211
|
container flag, args.to_a
|
|
212
212
|
end
|
|
@@ -522,7 +522,7 @@ module Squared
|
|
|
522
522
|
list_image(flag, docker_output('image ls -a'), from: from) do |val|
|
|
523
523
|
op << val
|
|
524
524
|
if flag == :tag
|
|
525
|
-
op << tagname("#{
|
|
525
|
+
op << tagname("#{project}:#{op.first}")
|
|
526
526
|
break
|
|
527
527
|
end
|
|
528
528
|
end
|
|
@@ -653,7 +653,7 @@ module Squared
|
|
|
653
653
|
ver = option('version', target: target, ignore: false)
|
|
654
654
|
list = case val
|
|
655
655
|
when String
|
|
656
|
-
val
|
|
656
|
+
split_escape val
|
|
657
657
|
when Array
|
|
658
658
|
val
|
|
659
659
|
else
|
|
@@ -637,7 +637,7 @@ module Squared
|
|
|
637
637
|
task flag, [:commit] do |_, args|
|
|
638
638
|
commit = commithead args.commit
|
|
639
639
|
unless commit
|
|
640
|
-
commit, merge = choice_commit(values: ['Merge? [y
|
|
640
|
+
commit, merge = choice_commit(values: ['Merge? [y/N]'])
|
|
641
641
|
merge = merge&.upcase == 'Y'
|
|
642
642
|
end
|
|
643
643
|
checkout(flag, commit: commit, merge: merge)
|
|
@@ -721,7 +721,7 @@ module Squared
|
|
|
721
721
|
task flag, [:name, :commit] do |_, args|
|
|
722
722
|
branch = param_guard(action, flag, args: args, key: :name)
|
|
723
723
|
commit = commithead args.commit
|
|
724
|
-
commit, track = choice_commit(values: ['Track? [Y
|
|
724
|
+
commit, track = choice_commit(values: ['Track? [Y/n]'], force: false) if commit == ':'
|
|
725
725
|
switch(flag, branch: branch, commit: commit, track: track)
|
|
726
726
|
end
|
|
727
727
|
when :detach
|
|
@@ -366,7 +366,7 @@ module Squared
|
|
|
366
366
|
subdir << target.to_s
|
|
367
367
|
end
|
|
368
368
|
begin
|
|
369
|
-
FileUtils.cp(basepath(s), dest, verbose:
|
|
369
|
+
FileUtils.cp(basepath(s), dest, verbose: verbosetype > 0)
|
|
370
370
|
rescue StandardError => e
|
|
371
371
|
print_error e
|
|
372
372
|
errors += 1
|
|
@@ -410,7 +410,7 @@ module Squared
|
|
|
410
410
|
target.each do |src, to|
|
|
411
411
|
glob.each { |val| log.info "cp #{from + val} #{to}" }
|
|
412
412
|
begin
|
|
413
|
-
copy_dir(src, to, glob, create: create, link: link, force: force, pass: pass, verbose:
|
|
413
|
+
copy_dir(src, to, glob, create: create, link: link, force: force, pass: pass, verbose: verbosetype > 0)
|
|
414
414
|
rescue StandardError => e
|
|
415
415
|
on_error e, :copy
|
|
416
416
|
end
|
|
@@ -482,7 +482,7 @@ module Squared
|
|
|
482
482
|
|
|
483
483
|
def outdated(flag = nil, opts = [], sync: invoked_sync?('outdated', flag))
|
|
484
484
|
dryrun = opts.include?('dry-run') || opts.include?('d')
|
|
485
|
-
if pnpm?
|
|
485
|
+
if pnpm?
|
|
486
486
|
cmd = session 'pnpm', 'outdated'
|
|
487
487
|
dryrun ||= dryrun?('pnpm')
|
|
488
488
|
else
|
|
@@ -312,7 +312,7 @@ module Squared
|
|
|
312
312
|
c = glob[i] || glob.first
|
|
313
313
|
log.info "cp #{a + c} #{b}"
|
|
314
314
|
begin
|
|
315
|
-
copy_dir(a, b, c, pass: pass, verbose:
|
|
315
|
+
copy_dir(a, b, c, pass: pass, verbose: verbosetype > 0)
|
|
316
316
|
rescue StandardError => e
|
|
317
317
|
on_error e, :copy
|
|
318
318
|
end
|
|
@@ -10,9 +10,10 @@ module Squared
|
|
|
10
10
|
include Common::Shell
|
|
11
11
|
extend Forwardable
|
|
12
12
|
|
|
13
|
+
OPT_NAME = /\A(?:(--)|-)((?(1)[A-Za-z\d]+|[A-Za-z\d]))\z/
|
|
13
14
|
OPT_VALUE = /\A-{0,2}([^= ]+)(?: *= *| +)(.+)\z/
|
|
14
15
|
OPT_SINGLE = /\A-([A-Za-z\d])(.+)\z/
|
|
15
|
-
private_constant :OPT_VALUE, :OPT_SINGLE
|
|
16
|
+
private_constant :OPT_NAME, :OPT_VALUE, :OPT_SINGLE
|
|
16
17
|
|
|
17
18
|
class << self
|
|
18
19
|
include Common::Format
|
|
@@ -70,8 +71,8 @@ module Squared
|
|
|
70
71
|
def strip(val)
|
|
71
72
|
return [] unless val
|
|
72
73
|
|
|
73
|
-
val = shell_split
|
|
74
|
-
val.map { |s| s.sub(OPT_SINGLE, '\1=\2').sub(OPT_VALUE, '\1=\2') }.reject(&:empty?)
|
|
74
|
+
val = shell_split val if val.is_a?(String)
|
|
75
|
+
val.map { |s| s.sub(OPT_SINGLE, '\1=\2').sub(OPT_VALUE, '\1=\2').sub(OPT_NAME, '\2') }.reject(&:empty?)
|
|
75
76
|
end
|
|
76
77
|
|
|
77
78
|
def select(list, bare: true, no: true, single: false, double: false)
|
|
@@ -132,19 +132,20 @@ module Squared
|
|
|
132
132
|
task 'all' do |_, args|
|
|
133
133
|
stage ||= 'all'
|
|
134
134
|
ns['sync'].invoke(*args.to_a)
|
|
135
|
-
next if env('REPO_STAGE'
|
|
135
|
+
next if (stage = env('REPO_STAGE')) == '1'
|
|
136
136
|
|
|
137
137
|
@project.select do |_, proj|
|
|
138
138
|
next unless proj.enabled?(proj.workspace.baseref)
|
|
139
139
|
|
|
140
140
|
proj.depend(sync: true) if proj.depend?
|
|
141
|
-
next if
|
|
141
|
+
next if stage == '2'
|
|
142
142
|
|
|
143
143
|
proj.build?
|
|
144
144
|
end
|
|
145
145
|
.each_value do |proj|
|
|
146
146
|
proj.build(sync: true)
|
|
147
|
-
next
|
|
147
|
+
next if stage == '3'
|
|
148
|
+
next unless proj.copy? && (proj.dev? || stage == '4')
|
|
148
149
|
|
|
149
150
|
if (ws = proj.workspace).task_defined?(target = task_join(proj.name, 'copy'))
|
|
150
151
|
task_invoke(target, **ws.invokeargs)
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: squared
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.4.
|
|
4
|
+
version: 0.4.24
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- An Pham
|
|
@@ -125,7 +125,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
125
125
|
- !ruby/object:Gem::Version
|
|
126
126
|
version: '0'
|
|
127
127
|
requirements: []
|
|
128
|
-
rubygems_version: 3.
|
|
128
|
+
rubygems_version: 3.6.9
|
|
129
129
|
specification_version: 4
|
|
130
130
|
summary: Rake task generator for managing multi-language workspaces.
|
|
131
131
|
test_files: []
|