Class: Chef::PowerShell
- Inherits:
-
Object
- Object
- Chef::PowerShell
- Extended by:
- FFI::Library
- Defined in:
- lib/chef/powershell.rb
Direct Known Subclasses
Defined Under Namespace
Classes: CommandFailed
Instance Attribute Summary collapse
-
#errors ⇒ Object
readonly
Returns the value of attribute errors.
-
#result ⇒ Object
readonly
Returns the value of attribute result.
-
#verbose ⇒ Object
readonly
Returns the value of attribute verbose.
Instance Method Summary collapse
- #error! ⇒ Object
-
#error? ⇒ Boolean
Was there an error running the command.
-
#initialize(script, timeout: -1)) ⇒ Object
constructor
Run a command under PowerShell via FFI This implementation requires the managed dll and native wrapper to be in the library search path on Windows (i.e. c:\windows\system32 or in the same location as ruby.exe).
Constructor Details
#initialize(script, timeout: -1)) ⇒ Object
Run a command under PowerShell via FFI This implementation requires the managed dll and native wrapper to be in the library search path on Windows (i.e. c:\windows\system32 or in the same location as ruby.exe).
Requires: .NET Framework 4.0 or higher on the target machine.
38 39 40 41 42 43 44 45 46 |
# File 'lib/chef/powershell.rb', line 38 def initialize(script, timeout: -1) # This Powershell DLL source lives here: https://github.com/chef/chef-powershell-shim # Every merge into that repo triggers a Habitat build and promotion. Running # the rake :update_chef_exec_dll task in this (chef/chef) repo will pull down # the built packages and copy the binaries to distro/ruby_bin_folder. Bundle install # ensures that the correct architecture binaries are installed into the path. @dll ||= "Chef.PowerShell.Wrapper.dll" exec(script, timeout: timeout) end |
Instance Attribute Details
#errors ⇒ Object (readonly)
Returns the value of attribute errors.
26 27 28 |
# File 'lib/chef/powershell.rb', line 26 def errors @errors end |
#result ⇒ Object (readonly)
Returns the value of attribute result.
25 26 27 |
# File 'lib/chef/powershell.rb', line 25 def result @result end |
#verbose ⇒ Object (readonly)
Returns the value of attribute verbose.
27 28 29 |
# File 'lib/chef/powershell.rb', line 27 def verbose @verbose end |
Instance Method Details
#error! ⇒ Object
64 65 66 |
# File 'lib/chef/powershell.rb', line 64 def error! raise Chef::PowerShell::CommandFailed, "Unexpected exit in PowerShell command: #{@errors}" if error? end |
#error? ⇒ Boolean
Was there an error running the command
53 54 55 56 57 |
# File 'lib/chef/powershell.rb', line 53 def error? return true if errors.count > 0 false end |