Sha256: e122b86f5935fea9d601343f06372a2292046b64b971b77637a2b74845ce66f6
Contents?: true
Size: 1.01 KB
Versions: 5
Compression:
Stored size: 1.01 KB
Contents
require "xmlrpc/client" require "net/ssh" module Saber class Fetcher def add_names(*names) files = retrive_files(*names) add(*files) end def aria2_add(uris, o={}, &blk) @aria2 = XMLRPC::Client.new2(Rc.aria2.rpc) @aria2.call("aria2.addUri", uris, o, &blk) end def add(*files) files.each { |file| uri = "#{Rc.server.ftp}/#{file}" gid = aria2_add([uri], :dir => Pa.dir2("#{Rc.p.fetcher_download}/#{file}")) Saber.ui.debug "DOWNLOAD #{gid} #{uri}" } end private def retrive_files(*names) files = [] Net::SSH.start(Rc.server.host, Rc.server.user) do |s| name = "'#{names.join("' '")}'" cmd = "cd #{Rc.p.remote_download} && find #{name} -type f" rst = s.exec!(cmd) if rst =~ /^find: `|^cd:cd:/ raise Error, rst elsif rst.nil? raise Error, "remote `#{name}' is an empty directory." end files = rst.split("\n") end files end end end
Version data entries
5 entries across 5 versions & 1 rubygems
Version | Path |
---|---|
saber-1.1.1 | lib/saber/fetcher.rb |
saber-1.1.0 | lib/saber/fetcher.rb |
saber-1.0.2 | lib/saber/fetcher.rb |
saber-1.0.1 | lib/saber/fetcher.rb |
saber-1.0.0 | lib/saber/fetcher.rb |