require "xmlrpc/client" module Saber class CLI < Thor include Thor::Actions class_option "no-color", :type => :boolean, :banner => "Disable colorization in output" class_option "verbose", :aliases => "-V", :type => :boolean, :banner => "Enable verbose output mode" def initialize(*) super the_shell = (options["no-color"] ? Thor::Shell::Basic.new : shell) Saber.ui = UI::Shell.new(the_shell) Saber.ui.debug! if options["verbose"] end desc "clean", "clean up files doesn't in rtorrent client" def clean Task.clean end desc "add ", "begin download file or directory via aria2 daemon." def add(*names) Downloader.new.add_names(*names) end desc "server", "start saber-server daemon" def server Server.start end desc "client", "start saber-client daemon" def client Client.start end desc "drb_add [label]", "add a file to saber-server daemon via drb" # drb_add "id1,id2", "foo" def drb_add(ids_str, label=Rc.label) return if label != Rc.label names = ids_str.split(",").map{|v| Retort::Torrent.action("name", v)} DRbClient.new.add(*names) end end end