diff --git a/lib/mixlib/shellout/helper.rb b/lib/mixlib/shellout/helper.rb index c9e64a2..e1cb2f2 100644 --- a/lib/mixlib/shellout/helper.rb +++ b/lib/mixlib/shellout/helper.rb @@ -149,10 +149,14 @@ def __clean_array(*args) # @param args [String] variable number of string arguments # @return [String] merged string # - def __join_whitespace(*args) - args.flatten.map do |arg| - arg.strip! - arg.include?(" ") ? sprintf('"%s"', arg) : arg + def __join_whitespace(*args, quote: false) + args.map do |arg| + if arg.is_a?(Array) + __join_whitespace(*arg, quote: arg.count > 1) + else + arg = arg.include?(" ") ? sprintf('"%s"', arg) : arg if quote + arg.strip + end end.join(" ") end @@ -168,7 +172,7 @@ def __shell_out_command(*args, **options) if options[:input] command.concat "<<'COMMANDINPUT'\n" command.concat __join_whitespace(options[:input]) - command.concat "COMMANDINPUT\n" + command.concat "\nCOMMANDINPUT\n" end end