module Spectre::FTP
Public Class Methods
ftp(name, config={})
click to toggle source
# File lib/spectre/ftp.rb, line 130 def ftp name, config={}, &block raise "FTP connection '#{name}' not configured" unless @@cfg.key?(name) or config.count > 0 cfg = @@cfg[name] || {} host = config[:host] || cfg['host'] || name username = config[:username] || cfg['username'] password = config[:password] || cfg['password'] opts = {} opts[:ssl] = config[:ssl] opts[:port] = config[:port] || cfg['port'] || 21 @@logger.info "Connecting to #{host} with user #{username}" ftp_conn = FTPConnection.new(host, username, password, opts, @@logger) begin ftp_conn.instance_eval &block ensure ftp_conn.close end end
sftp(name, config={})
click to toggle source
# File lib/spectre/ftp.rb, line 153 def sftp name, config={}, &block raise "FTP connection '#{name}' not configured" unless @@cfg.key?(name) or config.count > 0 cfg = @@cfg[name] || {} host = config[:host] || cfg['host'] || name username = config[:username] || cfg['username'] password = config[:password] || cfg['password'] opts = {} opts[:password] = password opts[:port] = config[:port] || cfg['port'] || 22 opts[:keys] = [cfg['key']] if cfg.key? 'key' opts[:passphrase] = cfg['passphrase'] if cfg.key? 'passphrase' opts[:auth_methods] = [] opts[:auth_methods].push 'publickey' if opts[:keys] opts[:auth_methods].push 'password' if opts[:password] sftp_con = SFTPConnection.new(host, username, opts, @@logger) begin sftp_con.instance_eval &block ensure sftp_con.close end end