Sha256: 47e9d1870393113d84da7c578fb485f6d32836b977b716c56e984cb4386c9f46

Contents?: true

Size: 1.54 KB

Versions: 78

Compression:

Stored size: 1.54 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 warn "[err :: #{ch[:server]}] #{data}"
            end
          end
          output
        end

      end
    end
  end
end

Version data entries

78 entries across 78 versions & 10 rubygems

Version Path
wulffeld-capistrano-2.5.8.3 lib/capistrano/configuration/actions/inspect.rb
capistrano-2.5.22 lib/capistrano/configuration/actions/inspect.rb
dan-capistrano-2.5.6 lib/capistrano/configuration/actions/inspect.rb
fotonauts-capistrano-2.5.2 lib/capistrano/configuration/actions/inspect.rb
mbailey-capistrano-2.5.5 lib/capistrano/configuration/actions/inspect.rb
mbailey-capistrano-2.5.6 lib/capistrano/configuration/actions/inspect.rb
mbailey-capistrano-2.5.7 lib/capistrano/configuration/actions/inspect.rb
sneakin-capistrano-2.5.5 lib/capistrano/configuration/actions/inspect.rb
thoughtbot-capistrano-2.5.5 lib/capistrano/configuration/actions/inspect.rb
thoughtbot-capistrano-2.5.6 lib/capistrano/configuration/actions/inspect.rb
wulffeld-capistrano-2.5.8.1 lib/capistrano/configuration/actions/inspect.rb
wulffeld-capistrano-2.5.8 lib/capistrano/configuration/actions/inspect.rb
HeSYINUvSBZfxqA-capistrano-2.5.28 lib/capistrano/configuration/actions/inspect.rb
HeSYINUvSBZfxqA-capistrano-2.5.27 lib/capistrano/configuration/actions/inspect.rb
HeSYINUvSBZfxqA-capistrano-2.5.26 lib/capistrano/configuration/actions/inspect.rb
HeSYINUvSBZfxqA-capistrano-2.5.25 lib/capistrano/configuration/actions/inspect.rb
HeSYINUvSBZfxqA-capistrano-2.5.24 lib/capistrano/configuration/actions/inspect.rb
capistrano-2.12.0 lib/capistrano/configuration/actions/inspect.rb
capistrano-2.11.2 lib/capistrano/configuration/actions/inspect.rb
HeSYINUvSBZfxqA-capistrano-2.5.23 lib/capistrano/configuration/actions/inspect.rb