Sha256: 14b5c1f556e599eb3605ebe47f3f4ca49ed52c7284986c352923f65ca7a56648

Contents?: true

Size: 895 Bytes

Versions: 38

Compression:

Stored size: 895 Bytes

Contents

module Vagrant
  module Util
    # This module provides a `safe_puts` method which outputs to
    # the given IO object, and rescues any broken pipe errors and
    # ignores them. This is useful in cases where you're outputting
    # to stdout, for example, and the stdout is closed, but you want to
    # keep running.
    module SafePuts
      # Uses `puts` on the given IO object and safely ignores any
      # Errno::EPIPE.
      #
      # @param [String] message Message to output.
      # @param [Hash] opts Options hash.
      def safe_puts(message=nil, opts=nil)
        message ||= ""
        opts = {
          :io => $stdout,
          :printer => :puts
        }.merge(opts || {})

        begin
          opts[:io].send(opts[:printer], message)
        rescue Errno::EPIPE
          # This is what makes this a `safe` puts.
          return
        end
      end
    end
  end
end

Version data entries

38 entries across 38 versions & 11 rubygems

Version Path
tamtam-vagrant-reload-1.1.3 vendor/cache/vagrant-0ac2a8738841/lib/vagrant/util/safe_puts.rb
tamtam-vagrant-reload-1.1.2 vendor/cache/vagrant-0ac2a8738841/lib/vagrant/util/safe_puts.rb
tamtam-vagrant-reload-1.1.1 vendor/cache/vagrant-0ac2a8738841/lib/vagrant/util/safe_puts.rb
tamtam-vagrant-reload-1.1 vendor/cache/vagrant-0ac2a8738841/lib/vagrant/util/safe_puts.rb
bmhatfield-vagrant-1.0.10 lib/vagrant/util/safe_puts.rb
bmhatfield-vagrant-1.0.9 lib/vagrant/util/safe_puts.rb
tnargav-1.3.6 lib/vagrant/util/safe_puts.rb
tnargav-1.3.3 lib/vagrant/util/safe_puts.rb
bmhatfield-vagrant-1.0.8 lib/vagrant/util/safe_puts.rb
vagrant-shell-0.2.9 demo/templates/vendor/bundle/ruby/1.9.1/gems/tnargav-1.2.2/lib/vagrant/util/safe_puts.rb
tnargav-1.2.3 lib/vagrant/util/safe_puts.rb
vagrant-shell-0.2.8 demo/templates/vendor/bundle/ruby/1.9.1/gems/tnargav-1.2.2/lib/vagrant/util/safe_puts.rb
bmhatfield-vagrant-1.0.7 lib/vagrant/util/safe_puts.rb
vagrant-shell-0.2.6 vendor/bundle/gems/tnargav-1.2.2/lib/vagrant/util/safe_puts.rb
vagrant-shell-0.2.5 vendor/bundle/gems/tnargav-1.2.2/lib/vagrant/util/safe_puts.rb
tnargav-1.2.2 lib/vagrant/util/safe_puts.rb
vagrantup-1.1.3 lib/vagrant/util/safe_puts.rb
vagrantup-1.1.2 lib/vagrant/util/safe_puts.rb
vagrantup-1.1.1 lib/vagrant/util/safe_puts.rb
vagrantup-1.1.0 lib/vagrant/util/safe_puts.rb