mixlib-shellout 3.3.3-universal-mingw32 → 3.3.6-universal-mingw32

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: 3ffdff3b2db45006adab99c670f2059458c840b36b678c1c342c957cbe21e6a7
4
- data.tar.gz: 1312451c4439639db479b85a6c827916b6d949c72696a055f454c605ddcf63c9
3
+ metadata.gz: a2ca6b80894e80f19e886100bc1d243046f866eeb2ae14a8f386bfe512f9f762
4
+ data.tar.gz: 0ce25e6f0aa5fca6177c998366c2eae8b46f3e9f4da42ac0b4be3ffa59e13b3c
5
5
  SHA512:
6
- metadata.gz: b27a7b09db45fa03dc9f9aca9b39d7b1b941f155ad12c821b87d7de5ff581310bda534d211b19105a7fbdeffeefd58163e5f296944342bdf5a73933d2839bc99
7
- data.tar.gz: 0ffac4252bf8df6c13e7a0111aaf84bb3ed6e1eb2ad8a8086bd372b3ba660534a01afda812a9be180c419377e25acd775aa0b8020b775d0885bb2bfdf5203a23
6
+ metadata.gz: 82bb0343f22fce3b166bb3b94770941514cb591e4cc4c4fc91d72204239bb68c2ce7f27147b39aabdbfd0ab0e608cb548bb47719f0449e15c76485664ed79bf8
7
+ data.tar.gz: 5897bd1d4e07244b268e90d872e4be802967f7268da98647ad6a5898a15d50ffc56ff784dbd176de2483830097db51cf8e049f70ab55344780ceb4eb3eb6e069
@@ -143,14 +143,21 @@ module Mixlib
143
143
 
144
144
  # Join arguments into a string.
145
145
  #
146
- # If the argument ends with a whitespace, use it as-is. Otherwise, add
147
- # a space at the end
146
+ # Strips leading/trailing spaces from each argument. If an argument contains
147
+ # a space, it is quoted. Join into a single string with spaces between each argument.
148
148
  #
149
149
  # @param args [String] variable number of string arguments
150
150
  # @return [String] merged string
151
151
  #
152
- def __join_whitespace(*args)
153
- args.flatten.map { |e| e + (e.rstrip == e ? " " : "") }.join
152
+ def __join_whitespace(*args, quote: false)
153
+ args.map do |arg|
154
+ if arg.is_a?(Array)
155
+ __join_whitespace(*arg, quote: arg.count > 1)
156
+ else
157
+ arg = arg.include?(" ") ? sprintf('"%s"', arg) : arg if quote
158
+ arg.strip
159
+ end
160
+ end.join(" ")
154
161
  end
155
162
 
156
163
  def __shell_out_command(*args, **options)
@@ -165,7 +172,7 @@ module Mixlib
165
172
  if options[:input]
166
173
  command.concat "<<'COMMANDINPUT'\n"
167
174
  command.concat __join_whitespace(options[:input])
168
- command.concat "COMMANDINPUT\n"
175
+ command.concat "\nCOMMANDINPUT\n"
169
176
  end
170
177
  end
171
178
 
@@ -1,5 +1,5 @@
1
1
  module Mixlib
2
2
  class ShellOut
3
- VERSION = "3.3.3".freeze
3
+ VERSION = "3.3.6".freeze
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mixlib-shellout
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.3.3
4
+ version: 3.3.6
5
5
  platform: universal-mingw32
6
6
  authors:
7
7
  - Chef Software Inc.
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-10-14 00:00:00.000000000 Z
11
+ date: 2025-01-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: chef-utils