Sha256: 63bfe37024a14003a22ae41b94739fdb82856616eb32ce2a54a8c789e3671155

Contents?: true

Size: 1.2 KB

Versions: 1

Compression:

Stored size: 1.2 KB

Contents

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 <file ..>", "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 <ids> [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

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
saber-0.0.3 lib/saber/cli.rb