Class: ChefPowerShell::PowerShell
- Inherits:
-
Object
- Object
- ChefPowerShell::PowerShell
- Defined in:
- lib/chef-powershell/powershell.rb
Direct Known Subclasses
Defined Under Namespace
Modules: PowerMod
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:windowssystem32 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:windowssystem32 or in the same location as ruby.exe).
Requires: .NET Framework 4.0 or higher on the target machine.
39 40 41 42 43 44 45 46 |
# File 'lib/chef-powershell/powershell.rb', line 39 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 verification process. # There is no mechanism to build a Windows gem file. It has to be done manually running manual_gem_release.ps1 # Bundle install ensures that the correct architecture binaries are installed into the path. @powershell_dll = Gem.loaded_specs["chef-powershell"].full_gem_path + "/bin/ruby_bin_folder/#{ENV["PROCESSOR_ARCHITECTURE"]}/Chef.PowerShell.Wrapper.dll" exec(script, timeout: timeout) end |
Instance Attribute Details
#errors ⇒ Object (readonly)
Returns the value of attribute errors.
27 28 29 |
# File 'lib/chef-powershell/powershell.rb', line 27 def errors @errors end |
#result ⇒ Object (readonly)
Returns the value of attribute result.
26 27 28 |
# File 'lib/chef-powershell/powershell.rb', line 26 def result @result end |
#verbose ⇒ Object (readonly)
Returns the value of attribute verbose.
28 29 30 |
# File 'lib/chef-powershell/powershell.rb', line 28 def verbose @verbose end |
Instance Method Details
#error! ⇒ Object
62 63 64 |
# File 'lib/chef-powershell/powershell.rb', line 62 def error! raise ChefPowerShell::PowerShellExceptions::PowerShellCommandFailed, "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/powershell.rb', line 53 def error? return true if errors.count > 0 false end |