46 lines
880 B
Ruby
46 lines
880 B
Ruby
module Producer
|
|
module Core
|
|
class Remote
|
|
class FS
|
|
attr_reader :remote
|
|
|
|
def initialize(remote)
|
|
@remote = remote
|
|
end
|
|
|
|
def sftp
|
|
@sftp ||= @remote.session.sftp.connect
|
|
end
|
|
|
|
def dir?(path)
|
|
sftp.stat!(path).directory?
|
|
rescue Net::SFTP::StatusException
|
|
false
|
|
end
|
|
|
|
def file?(path)
|
|
sftp.stat!(path).file?
|
|
rescue Net::SFTP::StatusException
|
|
false
|
|
end
|
|
|
|
def mkdir(path)
|
|
sftp.mkdir! path
|
|
end
|
|
|
|
def file_read(path)
|
|
sftp.file.open(path) { |f| content = f.read }
|
|
rescue Net::SFTP::StatusException
|
|
nil
|
|
end
|
|
|
|
def file_write(path, content)
|
|
sftp.file.open path, 'w' do |f|
|
|
f.write content
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|