Sha256: f31780462676e681b984fb5174c9ebb78a4136eb77317e9aa438c99887252923

Contents?: true

Size: 1.57 KB

Versions: 5

Compression:

Stored size: 1.57 KB

Contents

require 'capistrano/errors'

module Capistrano
  class Configuration
    module Actions
      module Inspect

        # Streams the result of the command from all servers that are the
        # target of the current task. All these streams will be joined into a
        # single one, so you can, say, watch 10 log files as though they were
        # one. Do note that this is quite expensive from a bandwidth
        # perspective, so use it with care.
        #
        # The command is invoked via #invoke_command.
        #
        # Usage:
        #
        #   desc "Run a tail on multiple log files at the same time"
        #   task :tail_fcgi, :roles => :app do
        #     stream "tail -f #{shared_path}/log/fastcgi.crash.log"
        #   end
        def stream(command, options={})
          invoke_command(command, options) do |ch, stream, out|
            puts out if stream == :out
            warn "[err :: #{ch[:server]}] #{out}" if stream == :err
          end
        end

        # Executes the given command on the first server targetted by the
        # current task, collects it's stdout into a string, and returns the
        # string. The command is invoked via #invoke_command.
        def capture(command, options={})
          output = ""
          invoke_command(command, options.merge(:once => true)) do |ch, stream, data|
            case stream
            when :out then output << data
            when :err then raise CaptureError, "error processing #{command.inspect}: #{data.inspect}"
            end
          end
          output
        end

      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
capistrano-2.0.0 lib/capistrano/configuration/actions/inspect.rb
capistrano-2.1.0 lib/capistrano/configuration/actions/inspect.rb
capistrano-2.4.0 lib/capistrano/configuration/actions/inspect.rb
capistrano-2.2.0 lib/capistrano/configuration/actions/inspect.rb
capistrano-2.3.0 lib/capistrano/configuration/actions/inspect.rb