squared 0.8.3 → 0.8.5

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.
@@ -12,6 +12,7 @@ module Squared
12
12
  include Enumerable
13
13
  include Comparable
14
14
  include Common::Format
15
+ include Host
15
16
  include System
16
17
  include Shell
17
18
  include Prompt
@@ -338,6 +339,7 @@ module Squared
338
339
  ext = flag == :ext ? param_guard(action, flag, args: args, key: :ext) : flag.to_s
339
340
  tag = param_guard(action, flag, args: args, key: :tag)
340
341
  dir = param_guard(action, flag, args: args, key: :dir)
342
+ digest = args.digest
341
343
  unless tag.match?(URI_SCHEME)
342
344
  tag = unpack_get tag, ext
343
345
  tag ||= if @release
@@ -346,7 +348,7 @@ module Squared
346
348
  raise ArgumentError, message('no base uri', tag, hint: ext)
347
349
  end
348
350
  end
349
- force = case (digest = args.digest)
351
+ force = case digest
350
352
  when 'f', 'force'
351
353
  digest = nil
352
354
  true
@@ -362,7 +364,8 @@ module Squared
362
364
  when :set
363
365
  format_desc action, flag, 'version,dir?=u/home|p/arent'
364
366
  task flag, [:version] do |_, args|
365
- args = if (version = args.version)
367
+ version = args.version
368
+ args = if version
366
369
  args.extras
367
370
  else
368
371
  version, opts = choice_index('Select a version',
@@ -377,7 +380,9 @@ module Squared
377
380
  asdf(flag, args, version: version)
378
381
  end
379
382
  else
380
- format_desc(action, flag, case flag when :exec, :env then 'command' end)
383
+ format_desc(action, flag, case flag
384
+ when :exec, :env then 'command'
385
+ end)
381
386
  task flag do |_, args|
382
387
  args = args.to_a
383
388
  if args.empty? && (flag == :exec || flag == :env)
@@ -533,7 +538,8 @@ module Squared
533
538
  graph_deps.flatten(1).sort.each do |proj|
534
539
  next if @@graph[:_].include?(proj)
535
540
 
536
- if (val = ENV["PREREQS_#{proj.envname_get}"] || ENV["PREREQS_#{proj.ref.upcase}"])
541
+ val = ENV["PREREQS_#{proj.envname_get}"] || ENV["PREREQS_#{proj.ref.upcase}"]
542
+ if val
537
543
  split_escape(val) do |meth|
538
544
  if proj.has?(meth)
539
545
  begin
@@ -581,7 +587,8 @@ module Squared
581
587
  on :first, :clean unless pass
582
588
  case @clean
583
589
  when Struct
584
- if (val = instance_eval(&@clean.block) || @clean.run)
590
+ val = instance_eval(&@clean.block) || @clean.run
591
+ if val
585
592
  cur = @clean
586
593
  @clean = val
587
594
  clean(*args, sync: sync, pass: true, **kwargs)
@@ -817,7 +824,7 @@ module Squared
817
824
  cmd << name
818
825
  banner = false if flag == :latest || flag == :where
819
826
  end
820
- success?(run(banner: banner, from: symjoin('asdf', flag)), banner, flag == :set || flag == :reshim)
827
+ success?(run(banner: banner, from: symjoin('asdf', flag)), banner, %i[set reshim].include?(flag))
821
828
  end
822
829
 
823
830
  def first(key, *args, **kwargs, &blk)
@@ -906,7 +913,7 @@ module Squared
906
913
  ret = shell_t(*args, name: send, chdir: chdir, exception: exception, timeout: timeout || 0)
907
914
  end
908
915
  rescue Timeout::Error => e
909
- print_error(Logger::ERROR, cmd, subject: name, hint: e)
916
+ print_error(Logger::ERROR, e, subject: name, hint: cmd)
910
917
  exit 1 unless exception?(Logger::DEBUG, Logger::INFO)
911
918
  rescue => e
912
919
  on_error(e, exception: true)
@@ -1366,9 +1373,8 @@ module Squared
1366
1373
  def run_b(obj, **kwargs)
1367
1374
  case obj
1368
1375
  when Struct
1369
- if (val = instance_eval(&obj.block) || obj.run)
1370
- run_b(val, **kwargs)
1371
- end
1376
+ val = instance_eval(&obj.block) || obj.run
1377
+ run_b(val, **kwargs) if val
1372
1378
  when Proc
1373
1379
  instance_eval(&obj)
1374
1380
  when Method
@@ -1726,7 +1732,7 @@ module Squared
1726
1732
  end
1727
1733
 
1728
1734
  def print_success
1729
- puts 'Success'
1735
+ puts ARG[:SUCCESS]
1730
1736
  end
1731
1737
 
1732
1738
  def print_error(*args, loglevel: Logger::WARN, **kwargs)
@@ -1921,7 +1927,8 @@ module Squared
1921
1927
 
1922
1928
  def append_hash(data, target: @session || [], build: false)
1923
1929
  if build && (type = env('BUILD', suffix: 'TYPE', ignore: false))
1924
- if (extra = data[type = "__#{type}__"] || data[type.to_sym]).is_a?(Hash)
1930
+ extra = data[type = "__#{type}__"] || data[type.to_sym]
1931
+ if extra.is_a?(Hash)
1925
1932
  data = data.merge(extra)
1926
1933
  else
1927
1934
  extra = nil
@@ -2139,7 +2146,10 @@ module Squared
2139
2146
  if accept
2140
2147
  hint = Array(ret).map { |val| sub_style(val.to_s, theme[:inline]) }.join(', ')
2141
2148
  accept = Array(accept).map { |val| Array(val) }
2142
- ret = Array(ret) if accept.any? { |val| val[1] == true }
2149
+ if accept.any? { |val| val[1] == true }
2150
+ ret = [ret]
2151
+ multiple = -1
2152
+ end
2143
2153
  begin
2144
2154
  item = accept.shift
2145
2155
  c = confirm("#{item[0]}#{" [#{hint}]" if hint}", item[2] ? 'Y' : 'N')
@@ -2152,7 +2162,7 @@ module Squared
2152
2162
  end until accept.empty?
2153
2163
  end
2154
2164
  if values
2155
- ret = Array(ret)
2165
+ ret = [ret] unless accept && multiple == -1
2156
2166
  Array(values).each do |val|
2157
2167
  if val.is_a?(Array)
2158
2168
  val, force = val
@@ -2198,7 +2208,7 @@ module Squared
2198
2208
  cmd.reverse! if File::NULL == 'NUL'
2199
2209
  cmd.unshift('').join(' ')
2200
2210
  end
2201
- if workspace.powershell?
2211
+ if powershell?
2202
2212
  "#{shell_bin('powershell.exe')} -Command \"& {#{args.join(' ; ')}}\"#{out}"
2203
2213
  else
2204
2214
  args.map { |val| "#{val}#{out}" }.join(' && ')
@@ -2335,7 +2345,7 @@ module Squared
2335
2345
  end
2336
2346
 
2337
2347
  def indexchar
2338
- workspace.windows? ? '=' : '^'
2348
+ windows? ? '=' : '^'
2339
2349
  end
2340
2350
 
2341
2351
  def shortname(*args, suffix: '?', delim: ',', pass: false)
@@ -2432,7 +2442,7 @@ module Squared
2432
2442
  return if from == false
2433
2443
 
2434
2444
  require 'timeout'
2435
- unless (path.to_s == Dir.pwd || pass) && (workspace.mri? || !workspace.windows?)
2445
+ unless (path.to_s == Dir.pwd || pass) && (mri? || !windows?)
2436
2446
  pwd = Dir.pwd
2437
2447
  Dir.chdir(path)
2438
2448
  end
@@ -2775,6 +2785,20 @@ module Squared
2775
2785
  false
2776
2786
  end
2777
2787
 
2788
+ def choice!(args, char: ':', first: true, empty: false, only: false)
2789
+ return true if (empty && args.empty?) || (only && args.size == 1 && args.first == char)
2790
+
2791
+ if first
2792
+ if args.first == char
2793
+ args.shift
2794
+ return true
2795
+ end
2796
+ elsif args.delete(char)
2797
+ return true
2798
+ end
2799
+ false
2800
+ end
2801
+
2778
2802
  def variables
2779
2803
  VAR_SET
2780
2804
  end