diff options
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/puppet/element.rb | 1 | ||||
| -rw-r--r-- | lib/puppet/util.rb | 16 |
2 files changed, 17 insertions, 0 deletions
diff --git a/lib/puppet/element.rb b/lib/puppet/element.rb index 916177d9c..7abc18fda 100644 --- a/lib/puppet/element.rb +++ b/lib/puppet/element.rb @@ -6,6 +6,7 @@ require 'puppet' # and provides a few simple across-the-board functions like 'noop' class Puppet::Element include Puppet + include Puppet::Util attr_writer :noop class << self diff --git a/lib/puppet/util.rb b/lib/puppet/util.rb index 50a2e1e02..2f6136ef0 100644 --- a/lib/puppet/util.rb +++ b/lib/puppet/util.rb @@ -4,6 +4,9 @@ require 'sync' require 'puppet/lock' module Puppet + # A command failed to execute. + class ExecutionFailure < RuntimeError + end module Util require 'benchmark' @@ -346,6 +349,19 @@ module Util end end + # Execute the desired command, and return the status and output. + def execute(command, failonfail = true) + output = %x{#{command}} + + if failonfail + unless $? == 0 + raise ExecutionFailure, output + end + end + + return output + end + module_function :benchmark def memory |
