diff options
author | Claire McQuin <claire@getchef.com> | 2015-10-06 12:44:48 -0700 |
---|---|---|
committer | Claire McQuin <claire@getchef.com> | 2015-10-06 13:19:28 -0700 |
commit | 9b57fbf80828747699695119a354f51dbb7fa4b2 (patch) | |
tree | 32c5d2f3317c6cabaa1338ba9dabcbf6d3119fa4 /lib | |
parent | 0053c17bba34090083a34395657ff1ba1616e213 (diff) | |
download | chef-9b57fbf80828747699695119a354f51dbb7fa4b2.tar.gz |
Quote paths.mcquin/chef-3883
Diffstat (limited to 'lib')
-rw-r--r-- | lib/chef/provider/powershell_script.rb | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/lib/chef/provider/powershell_script.rb b/lib/chef/provider/powershell_script.rb index 91ce11c337..cea9a45dad 100644 --- a/lib/chef/provider/powershell_script.rb +++ b/lib/chef/provider/powershell_script.rb @@ -41,10 +41,6 @@ class Chef # Powershell.exe is always in "v1.0" folder (for backwards compatibility) interpreter_path = Chef::Util::PathHelper.join(basepath, "WindowsPowerShell", "v1.0", interpreter) - "\"#{interpreter_path}\" #{flags} \"#{script_file.path}\"" - end - - def flags # Must use -File rather than -Command to launch the script # file created by the base class that contains the script # code -- otherwise, powershell.exe does not propagate the @@ -52,8 +48,17 @@ class Chef # end of the script, it gets changed to '1'. # # Nano only supports -Command - file_or_command = Chef::Platform.windows_nano_server? ? '-Command' : '-File' - interpreter_flags = [*default_interpreter_flags, file_or_command].join(' ') + cmd = "\"#{interpreter_path}\" #{flags}" + if Chef::Platform.windows_nano_server? + cmd << " -Command \". '#{script_file.path}'\"" + else + cmd << " -File \"#{script_file.path}\"" + end + cmd + end + + def flags + interpreter_flags = [*default_interpreter_flags].join(' ') if ! (@new_resource.flags.nil?) interpreter_flags = [@new_resource.flags, interpreter_flags].join(' ') @@ -91,7 +96,7 @@ EOH # written to the file system at this point, which is required since # the intent is to execute the code just written to it. user_script_file.close - validation_command = "\"#{interpreter}\" #{interpreter_arguments} -Command #{user_script_file.path}" + validation_command = "\"#{interpreter}\" #{interpreter_arguments} -Command \". '#{user_script_file.path}'\"" # Note that other script providers like bash allow syntax errors # to be suppressed by setting 'returns' to a value that the |