Sha256: 70e5a76533e82faae69c0982d84a80f1ea07ac97ecd2e0cf5429403bbcde6ded

Contents?: true

Size: 1.62 KB

Versions: 17

Compression:

Stored size: 1.62 KB

Contents

require 'capistrano/transfer'

module Capistrano
  class Configuration
    module Actions
      module FileTransfer

        # Store the given data at the given location on all servers targetted
        # by the current task. If <tt>:mode</tt> is specified it is used to
        # set the mode on the file.
        def put(data, path, options={})
          opts = options.dup
          upload(StringIO.new(data), path, opts)
        end

        # Get file remote_path from FIRST server targeted by
        # the current task and transfer it to local machine as path.
        #
        # get "#{deploy_to}/current/log/production.log", "log/production.log.web"
        def get(remote_path, path, options={}, &block)
          download(remote_path, path, options.merge(:once => true), &block)
        end

        def upload(from, to, options={}, &block)
          mode = options.delete(:mode)
          transfer(:up, from, to, options, &block)
          if mode
            mode = mode.is_a?(Numeric) ? mode.to_s(8) : mode.to_s
            run "chmod #{mode} #{to}", options
          end
        end

        def download(from, to, options={}, &block)
          transfer(:down, from, to, options, &block)
        end

        def transfer(direction, from, to, options={}, &block)
          if dry_run
            return logger.debug "transfering: #{[direction, from, to] * ', '}"
          end
          execute_on_servers(options) do |servers|
            targets = servers.map { |s| sessions[s] }
              Transfer.process(direction, from, to, targets, options.merge(:logger => logger), &block)
          end
        end

      end
    end
  end
end

Version data entries

17 entries across 17 versions & 2 rubygems

Version Path
capistrano-2.15.11 lib/capistrano/configuration/actions/file_transfer.rb
capistrano-2.15.10 lib/capistrano/configuration/actions/file_transfer.rb
capistrano-2.15.9 lib/capistrano/configuration/actions/file_transfer.rb
capistrano-2.15.8 lib/capistrano/configuration/actions/file_transfer.rb
capistrano-2.15.7 lib/capistrano/configuration/actions/file_transfer.rb
capistrano-2.15.6 lib/capistrano/configuration/actions/file_transfer.rb
capistrano-2.15.5 lib/capistrano/configuration/actions/file_transfer.rb
minmb-capistrano-2.15.4 lib/capistrano/configuration/actions/file_transfer.rb
capistrano-2.15.4 lib/capistrano/configuration/actions/file_transfer.rb
capistrano-2.15.3 lib/capistrano/configuration/actions/file_transfer.rb
capistrano-2.15.2 lib/capistrano/configuration/actions/file_transfer.rb
capistrano-2.15.0 lib/capistrano/configuration/actions/file_transfer.rb
capistrano-2.15.1 lib/capistrano/configuration/actions/file_transfer.rb
capistrano-2.14.2 lib/capistrano/configuration/actions/file_transfer.rb
capistrano-2.14.1 lib/capistrano/configuration/actions/file_transfer.rb
capistrano-2.13.5 lib/capistrano/configuration/actions/file_transfer.rb
capistrano-2.12.0 lib/capistrano/configuration/actions/file_transfer.rb